2011-11-11 1 views
0

onchange()フォームフィールドイベントごとにフォームを送信して、別のCSSボックスに「ライブ検索結果数」を取得します。 (hereのように、フォームフィールドの値を変更すると右のCSSボックスに「検索結果数」の変更が即座に反映されます)Rails 3、UJS/jQueryを使用してすべてのフォームフィールドでonchangeイベントをバインドする最良の方法

これを実行する最も簡単な方法は何ですか?

PS。私はこの方法を "手動で"行う方法を知っているので、技術に関する質問がありますが、私は10種類以上の異なるタイプのフィールド(select/select-multiple/checkbox)を持っています。当然の

おかげ

答えて

0
$('input, select').change(function() { 
    var params = {}; 
    params[this.name] = this.value; 
    $.post('yourFieldHandlingUrl.rb', params); 
}); 

これは最小限である、あなたは、Ajaxの成功/エラー処理を追加することができます。

あなたの車の例では、これは、他のボックスのステータスが、通常セッションでサーバーに保存されていることを意味します。そうでなければ、ページのビルド時にjavascriptの中で可能な組み合わせを得ることができます。しかし、最も良い方法は、必ずすべての入力を送信して値を再計算することです。これは次のようなもので簡単にできます:

$('input, select').change(function() { 
    var params = {}; 
    $(this).closest('div.inputsContainer').each(function() { 
     params[this.name] = this.value; 
    }); 
    $.post('yourFieldHandlingUrl.rb', params); 
}); 
+0

ありがとう、それは適切です:) – user973254

関連する問題