我有一个包含三个输入的页面,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)之外是否有机会绕过这个问题(因为我希望用户继续看输入中的#)
感谢您的回答
答案 0 :(得分:0)
需要使用encodeURIComponent()
正确编码值。否则#
或&
这样的字符会破坏事物。因此,您使用this.value
代替encodeURIComponent(this.value)
。
但是,由于你使用jQuery,你有一个更好的方法:data
参数接受一个对象,jQuery负责转义。但是,在这种情况下它会切换到POST - 但如果这对你来说不是问题,那么这是最干净的方式:
$("#color1").change(function() {
$("#mydiv").load("script.php", {
color1: this.value,
...
});
});