1

select/option から変数を保存し、ボタンから変数にアクセスして、ページ上のいくつかの div をフィルタリングする JavaScript 関数に送信しようとしています。

これまでのところ、値が変更されたときに値を「filter()」に送信しています。ここに私のマークアップがあります:

<select name="Area" onchange="filter(this)">
    <option selected>Select</option>
    <option value="Austin">Austin</option>
    <option value="San Antonio">San Antonio</option>
    <option value="Temple">Temple</option>
</select>
<select name="Number" onchange="filter(this)">
    <option selected>Select</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
<a class="button">Submit</a>

しかし、すべてのオプションの値を保存してから、一度に関数に送信するにはどうすればよいでしょうか?

編集:つまり、各オプションの値を保存し、送信をクリックしたときにのみ関数に送信するにはどうすればよいですか?

4

2 に答える 2

2

次のように、各選択に id 属性を与えます。

<select name="Number" onchange="filter(this)" id="Number">
...

次に、次の方法で JavaScript でそれぞれの値を取得できます。

var el = document.getElementById('Number');
var value = el.options[el.selectedIndex].value;

onchange補足として、 HTML マークアップを 使用してイベント処理をアタッチすることはベスト プラクティスではありません。quirksmode のこの記事では、代替ソリューションについて適切に説明しています。ただし、考慮すべき主要なクロスブラウザーの考慮事項があります。そのため、ほとんどの人は Javascript フレームワークを使用することを好み、それらのほとんどが軽減されます。

于 2013-08-16T19:03:49.593 に答える