0

私はこれを理解したと思っていましたが、何かが欠けているに違いありません...

編集:非常に単純なものが欠けていたことが判明しました...最初のスクリプトをタグの後に移動すると、すべてが完全に機能しました!

Web フォームのすべての Select 要素に onchange ハンドラを設定して、コードをクリーンアップしたいと考えています。私はjQueryを使ってこれを行うことができると思った...

<head>
<script type="text/javascript">
    jQuery('#myform').on('change', 'select', function() {
            var values = Sijax.getFormValues('#myform') ;
            Sijax.request('func',[values]);
            });
</script>  
</head>  

しかし、このフォームでは何も起こりません...

<form id="myform">
  <select name="one" id="one" title="one" >
    <option value="Value_11">Label_11</option>
    <option value="Value_12">Lable_12</option>
  </select>
  <select name="two" id="two" title="two" >
    <option value="Value_21">Label_21</option>
    <option value="Value_22">Lable_22</option>
  </select>
</form>  

ただし、選択要素内で同じ関数を使用すると、うまく機能します...何が欠けていますか?

<form id="myform">
  <select name="one" id="one" title="one"
    onchange="{ var values = Sijax.getFormValues('#myform') ;
            Sijax.request('func',[values]); }" >
    <option value="Value_11">Label_11</option>
    <option value="Value_12">Lable_12</option>
  </select>
  ...

スクリプトを間違った場所に置いていたことが判明しました。それを から移動し、(最後に) <#myform> 要素に入れると、完全に機能し始めました。onload ハンドラーを使用して頭の中でこれを行うことができるはずだと思いますが、まだそこに到達していません...

4

1 に答える 1

0

コンテナに .on を適用する必要があります。

したがって、あなたの場合はおそらくボディを選択してください。

jQuery('select').on( { change : function() {

            }},"body");

またはそのようなもの。

ただし、 on はコンテナーで機能し、コンテナー内の要素に select を適用します。つまり、jQuery は、イベントを適用する要素を探すためにページ全体を走査する必要がなく、全体が高速化されます。

于 2013-04-30T23:31:52.887 に答える