我有一个有三个输入的页面,color1,color2和color3。一旦用户输入十六进制值或颜色名,我就需要在#mydiv中加载script.php:
$("#color1").change(function() {
$("#mydiv").load("script.php?color1=" + this.value + "&color2=" + color2.value + "&color3=" + color3.value + "");
});我面临的问题是#导致Jquery在script.php?color1=处停止,我想知道除了substring(1)之外,是否有机会绕过这个问题(因为我希望用户在输入中继续看到#)
感谢您的回答
发布于 2013-01-19 10:18:46
需要使用encodeURIComponent()对这些值进行正确编码。否则,像#或&这样的字符会破坏程序。所以你应该使用encodeURIComponent(this.value)而不是this.value。
但是,由于您使用的是jQuery,因此有一种更好的方法:data参数接受一个对象,在这种情况下,jQuery负责转义。然而,在这种情况下,它会切换到POST -但如果这对你来说不是问题,这是最干净的方式:
$("#color1").change(function() {
$("#mydiv").load("script.php", {
color1: this.value,
...
});
});https://stackoverflow.com/questions/14410510
复制相似问题