通过在struts-dojo自动完成上按Enter键来阻止表单提交

时间:2013-05-15 09:30:24

标签: javascript jquery javascript-events struts2 dojo

我正在尝试更改struts2-dojo autocomplete的输入事件,其中提交表单的内容应该是我的一些jquery工作。

我试过......

<s:form action="EmpAction">
    <sx:autocompleter label="Name" name="name" list="nameList" id="Name" showDownArrow="false" />
<s:textfield name="test" label="test" id="test"/>
</s:form>

和jquery ......

<script type="text/javascript">
  $(function(){
       $('#Name').key(function(e) {

        if (e.keyCode == 13) {
            e.preventDefault();
            alert($(this).val());
            //and some jquery code to get json and fill test textfield.
        return false;
        }
    });

}); 
</script>

但它仍然提交此表单,我已经使用了

  

e.preventDefault();

在许多情况下并取得了成功,但此处不起作用。

1 个答案:

答案 0 :(得分:1)

此代码适用于您的上下文

$(document).ready(function() {
  $(window).keydown(function(event){
    if(event.keyCode == 13) {
if(event.currentTarget != $("yourAutocompleteId")){
      event.preventDefault();
myPersonalFunctionCall();
}
else{$("yourAutocompleteId").one("onfocus", false);}

      return false;
    }
  });
});