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



我试图改变进入事件为struts2-dojo自动完成,而不是提交的形式,它应该做一些我的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 ();

在很多情况下都取得了成功,但在这里却行不通。

此代码将在您的上下文中工作

$(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;
    }
  });
});

最新更新