1

我有一个包含三个输入的页面,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) 之外是否有机会绕过这个问题(因为我希望用户继续看到 # in输入)

谢谢您的回答

4

1 回答 1

0

这些值需要使用正确编码encodeURIComponent()。否则字符喜欢#&会破坏事物。因此,this.value您不会使用encodeURIComponent(this.value).

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

$("#color1").change(function() {
    $("#mydiv").load("script.php", {
        color1: this.value,
        ...
    });
});
于 2013-01-19T02:18:45.543 回答