2012-08-28 112 views
0

我的JavaScript以下位HTML輸入框不觸發事件

 
function select(id, evt) { 
     var e = (typeof evt != 'undefined') ? evt : event; 
     e.cancelBubble = true; 
     alert('err'); 
     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)select控制但不是input控制。當我嘗試alert框,我打電話select()它的工作,但它不只是調用select()。我嘗試過onKeyUp,但它給我輸入一個奇怪的行爲來替換文本。我在這裏做錯了什麼?

+1

試過多個瀏覽器? – Sepster

+1

如果您的取消泡泡代碼中的某些內容破裂,我會將該提示移至您的選擇函數的頂部。您是否看過在觸發此事件時控制檯正在報告的內容? (例如在Chrome開發工具或Firbebug等) – Sepster

+0

沒有錯誤沒有任何..我檢查了控制檯..我刪除了取消泡沫代碼以及..沒有運氣! – Deepak

回答

1

那就是很奇怪。如果將功能從select重命名爲select_,則將會工作。但既然你已經使用jQuery,您可以使用下面的,而不是使用內嵌change處理程序:

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

這裏有一個DEMO

+0

我以前面臨類似的問題我不想這次考慮..謝謝! – Deepak