1

color1、color2、color3 の 3 つの入力があるページがあります。ユーザーが 16 進値または色名を入力したら、 #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) 以外にこの問題を回避する機会があるかどうか疑問に思っていました (ユーザーに # を見続けてもらいたいため)入力)

回答ありがとうございます

4

1 に答える 1

0

を使用して値を適切にエンコードする必要がありますencodeURIComponent()。そうしないと、文字が好きになる#か、&物事が壊れます。したがって、代わりthis.valueencodeURIComponent(this.value).

ただし、jQuery を使用しているため、はるかに優れた方法があります。data引数がオブジェクトを受け入れ、その場合、jQuery がエスケープ処理を行います。ただし、その場合は POST に切り替わりますが、それが問題にならない場合は、最もクリーンな方法です。

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