我看过许多类似的问题,但是也许我不明白如何调用函数。

我的目标是允许用户在表单字段中键入内容,然后按Enter键提交。

当前,如果有人在表单中输入值,则单击Enter不会执行任何操作。要执行,他们必须单击“搜索库存”按钮。

我的搜索表单简化了……有很多字段,所有字段都带有一类jquerydata。类stockstock_search_db_connect绑定到jQuery函数,该函数以jquerydata作为类来收集所有内容并执行其操作。

<form method="post"  action="" name="form3" id="form3">
<input type=text name="title" size=25 value="" class="jquerydata">
<input type=button class="inventory_search_db_connect" value="   Search Inventory" class="jquerydata">
</form>


javascript / jQuery

$(document).ready(function () {
pageBinds.db_actions();
SearchBinds.search_actions();
});


var pageBinds = {

db_actions: function() {
var that = this;
 $('.inventory_functions_db_connect').on(
      'click', function(event){


          var query= $(this).closest('.parent').find('.jquerydata').serialize();

....does stuff here
  );
},
unbind: function() {
$('.inventory_functions_db_connect').off();
this.db_actions();
}

}


我尝试了几件事,虽然我可能会做的是

$(document).ready(function() {

$('#form3').on("submit", function() {
    this.db_actions();
});
});


在我添加的表单标签上

<form method="post"  action="" name="form3" id="form3" onsubmit="return false">


因为我在这里,所以这显然行不通。

还有许多其他解决方法,但是我无法解释如何调用所需的函数。

预先感谢您的任何见解...
麦克风

最佳答案

在html中删除onsubmit =“ return false”
因为这阻止了执行

$('#form3').on("submit", function() {
   this.db_actions();
});


然后在JS中,您必须通过调用preventDefault()来阻止自动提交:

$('#form3').on("submit", function(e) {
    e.preventDefault();
    this.db_actions();
 });





  编辑:


this.db_actions();


将不起作用,因为这是DOM元素,因此

$('#form3').on("submit", function() {
   pageBinds.db_actions();
});


让我知道这个是否奏效 ;)

09-25 17:31
查看更多