首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有# troubleshooting的Jquery load()

带有# troubleshooting的Jquery load()
EN

Stack Overflow用户
提问于 2013-01-19 10:16:59
回答 1查看 35关注 0票数 1

我有一个有三个输入的页面,color1,color2和color3。一旦用户输入十六进制值或颜色名,我就需要在#mydiv中加载script.php:

代码语言:javascript
复制
$("#color1").change(function() {
    $("#mydiv").load("script.php?color1=" + this.value + "&color2=" + color2.value + "&color3=" + color3.value + "");
});

我面临的问题是#导致Jquery在script.php?color1=处停止,我想知道除了substring(1)之外,是否有机会绕过这个问题(因为我希望用户在输入中继续看到#)

感谢您的回答

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-19 10:18:46

需要使用encodeURIComponent()对这些值进行正确编码。否则,像#&这样的字符会破坏程序。所以你应该使用encodeURIComponent(this.value)而不是this.value

但是,由于您使用的是jQuery,因此有一种更好的方法:data参数接受一个对象,在这种情况下,jQuery负责转义。然而,在这种情况下,它会切换到POST -但如果这对你来说不是问题,这是最干净的方式:

代码语言:javascript
复制
$("#color1").change(function() {
    $("#mydiv").load("script.php", {
        color1: this.value,
        ...
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14410510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档