複数の入力タイプを持つ検索フォームがあり、ユーザーが入力を変更するたびに検索フォームから値を取得したいと考えています。
フォームは次のようになります。
<form id="search">
<input type="hidden" name="cat[0][name]" value="cat1">
//select type input.
<select id="cat-0" name="cat[0][id]" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input type="hidden" name="cat[1][name]" value="cat2">
<select id="cat-1" name="cat[1][id]" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
//checkbox type input
<input type="hidden" name="cat[2][name]" value="cat3">
<label><input id="cat-2" type="checkbox" name="cat[2][id][]" value="1"> 1</label>
<label><input id="cat-2" type="checkbox" name="cat[2][id][]" value="2"> 2</label>
<label><input id="cat-2" type="checkbox" name="cat[2][id][]" value="3"> 3</label>
//radio type input
<input type="hidden" name="cat[3][name]" value="cat4">
<label><input id="cat-3" type="radio" name="cat[3][id]" value="1"> 1</label>
<label><input id="cat-3" type="radio" name="cat[3][id]" value="2"> 2</label>
<label><input id="cat-3" type="radio" name="cat[3][id]" value="3"> 3</label>
</form>
ご覧のとおり、入力値は多次元配列になっています。ユーザーが入力のいずれかを変更したときに、JavaScript でこれらの値を取得するにはどうすればよいですか。私がやりたかったのは、このサイトのような検索エンジンを作成することだけでした。
フォームは動的に生成されるため、すべてのフィールドに固定の ID/クラスを定義することはできません。
jsスクリプトは次のようになりますか?
$('[id^=cat]').live('change', function(e) {
passing_data();
return false;
});
function passing_data() {
var getdata = $(':input[name="cat"]').val();//this i can't get it.
alert(getdata);
return false;
}
passing_data() は取得できなかった部分です。検索機能を実行するために ajax で使用されます。
何か案が?