3

一連のボタンをチェックして、クエリ文字列を生成するためにそれらが選択されているかどうかを確認しようとしています。私が知る限り、ロジックは次のようになります。

if ($("input[name='ovr']")[0].checked)
{
...
}

これは機能しますが、文字列を生成するために一連のifステートメントを使用したくないので(後でボタンが追加される可能性があるため、非効率的であるなど)、ボタンに関連付けられた名前を表す配列を生成しました(印刷しました配列;それは間違いなく固有名を含んでいます)。しかし、配列内の各名前を実行するためにループを作成したとき、コンソールは「入力」が認識されない式であると示唆しました。ループは次のとおりです。

    for (i = 0; i < myList.length; i = i + 1) {
        if ($("/"input[name='" + myList[i] + "']/"")[0].checked) {
            string += myList[i] + "=" + myList[i] + "&";
        }
    }

stringは、ボタンチェックがtrueを返す必要がある場合に、適切な署名(?)をそれ自体に追加する変数です。myListは、名前を含む配列です。

残念ながら、私はこれらすべてに不慣れで、どこから始めればよいのか本当にわかりません。私は答えをグーグルで検索しようとしましたが(ここでは本当に初心者です)、何を検索すればよいのかさえよくわかりませんでした。また、入力式の言い回しをいじったり、別のエスケープ文字を使用したりしても無駄になりました。HTMLもほとんどのjavascriptも私のものではないので(それは私のスーパーバイザーのものです)、私は二重に失われています。あなたが与えることができるどんな提案でも心から感謝されるでしょう。ありがとう!

4

2 に答える 2

2

このようなものはうまくいくでしょう(なぜあなたがそれらのバックスラッシュを追加しようとしたのか私は本当に理解していないので、私はあなたに正しい方法を示すだけです):

for (i = 0; i < myList.length; i = i + 1) {
    if ($("input[name='" + myList[i] + "']")[0].checked) {
        string += myList[i] + "=" + myList[i] + "&";
    }
}

注:クエリ文字列を生成する場合は、忘れずに使用してくださいencodeURIComponent()

于 2012-07-06T15:17:57.213 に答える
1

このようなもの?

var query = "?";
$('input:checked').each(function(index) {
    query += this.name + "=" + this.value + "&";
});

セレクターを変更して、必要なチェックボックスのみを取得できます。

于 2012-07-06T15:33:38.573 に答える