事件未在jquery中检测到

时间:2011-12-07 09:32:36

标签: jquery events form-submit keypress

我有一个id = uName的文本字段。当我按下回车键我希望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 个答案:

答案 0 :(得分: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.
});

唯一的区别是一个比另一个短。

答案 1 :(得分:0)

确保您的代码在之后运行>。

<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>