2011-12-07 56 views
0

我有一個id = uName的文本字段。當我按下輸入按鈕時,我想讓jquery檢測它並提交表單。但它沒有檢測到Enter鍵按下的事件。在jquery中未檢測到事件

如何解決這個問題?

代碼:

<s:textfield cssClass="inputselect" name="uname" id="uname" /> 


<script type="text/javascript"> 
    $(document.getElementById('uname')).keypress(function(event){ 

     var keycode = (event.keyCode ? event.keyCode : event.which); 
     if(keycode == '13') { 
       document.getElementById("formID").action="searchbaseuom"; 
       document.getElementById("formID").submit(); 
     } 
    }); 
</script> 

回答

2

我做了一些修改你的代碼,希望這可以幫助,但你混合的jQuery JavaScript的,它告訴我們你還沒有掌握如何jQuery的工程。

希望這有助於。

<s:textfield cssClass="inputselect" name="uname" id="uname" /> 


<script type="text/javascript"> 
    $('#uname').keypress(function(event){ 
    var keycode = (event.keyCode) ? event.keyCode : event.which;//note changes 
    if(keycode == '13'){ 
    $("#formID").attr('action',"searchbaseuom").submit(); 
    } 
    }); 
</script> 

更新

此外,如果你已經把腳本標記在頭上的標籤,那麼你就需要一個現成的功能,這意味着當頁面加載正確,然後再進行以下說明。

,因爲形式可以大聲上面的腳本後,這將意味着你的事件尚未連接,所以你需要把整個腳本在下面的代碼。

$(function(){//when document is ready line. 
    // script goes here 
}); 

這是相同的

$(document).ready(function(){ 
    //script here. 
}); 

的唯一區別是一個比另一個短。

+0

也嘗試13作爲一個整數,而不是因爲它的上面,如果他們的keycode不工作:) – Val

0

確保您的代碼後運行的DOM已準備就緒。

<script type="text/javascript"> 
$(function(){ 
    $('#uname').keypress(function(event){ 
     var keycode = (event.keyCode ? event.keyCode : event.which); 
     if(keycode === 13){ 
      $('#formID').attr('action','searchbaseuom').submit(); 
     } 
    }); 
}); 
</script>