0

私は次のJavascriptを持っています:

関数選択(id、evt){
        var e = (typeof evt != 'undefined') ? evt : イベント;
        e.cancelBubble = true;
        アラート('エラー');
        var $toggler = $("#building"+id);     
        
        if(!$toggler.is(':checked')){
            $toggler.attr('checked', true);
            $("#row"+id).removeClass("selectRow");
            $("#row"+id).addClass("selectRow");            
        }
    }

次の<HTML>ブロックがあります

<td>
   <select onchange="select(2, event);" name="prefferedAgent396" class="input-small">
       <option value="0">Choose...</option>
       <option value="1" selected=""> Senthil </option>                                    
       <option value="3"> Sunmeet </option>                                    
       <option value="4"> Doesnot Speak English </option>                                    
       <option value="5"> Marcus Fava </option>                                    
   </select> 
</td>
<td>
   <input type="text" onchange="select(2, event);" class="input-mini" id="initial396" name="initial396" value="">
</td>

ここでの問題は、イベントがコントロールではなくコントロールに対してonchangeトリガーすることです。私が呼び出すボックスを試したとき、それは機能しましたが、単に. 試してみましたが、入力時にテキストを置き換えるという奇妙な動作が発生しました。ここで何が間違っていますか?select(2, event)selectinputalertselect()select()onKeyUp

4

1 に答える 1

1

それは非常に奇妙です。関数の名前を から に変更すると、select機能select_ますchangeただし、既に jQuery を使用しているため、インラインハンドラーを使用する代わりに、次のものを使用できます。

$("#prefferedAgent396,#initial396").change(function (e) {
   select(2, e);
});

ここにデモがあります。

于 2012-08-29T00:09:10.440 に答える