2013-01-19 117 views
1

我有一个页面有三个输入,color1,color2和color3。 一旦用户输入的任一十六进制值或一个colorname我需要加载的script.php内部#mydiv:Jquery加载()#排除故障

$("#color1").change(function() { 
    $("#mydiv").load("script.php?color1=" + this.value + "&color2=" + color2.value + "&color3=" + color3.value + ""); 
}); 

我现在面临的问题是,使#Jquery的停止在的script.php COLOR1 =?我想知道是否有任何机会,以绕过这个问题,除了子串(1)(因为我希望用户不断看到在输入#)

谢谢你的答案

回答

0

的值需要使用encodeURIComponent()进行正确编码。否则像#&这样的字符会破坏事情。因此,您可以使用encodeURIComponent(this.value)而不是this.value

但是,由于您使用的是jQuery,因此您有更好的方法:data参数接受一个对象,在这种情况下jQuery负责转义。然而,开关在这种情况下,以邮政 - 但如果这不是你的问题这是最彻底的方法:

$("#color1").change(function() { 
    $("#mydiv").load("script.php", { 
     color1: this.value, 
     ... 
    }); 
}); 
+0

非常感谢你的帮助到这个问题。实际上encodeURIComponent(this.value)的作用就像一个魅力,我会研究数据参数。谢谢大家。 – jda