javascript - 在 jQuery 表单提交中传递名称

标签 javascript jquery forms submit

我不知道为什么以下行无法正常运行:

$('form[name="updateNetwork"]').unbind('submit').submit();

我可以通过以下方式提交表单

$("form").unbind('submit').submit();

但是,这样做不会传递表单的名称属性,我的后端代码必须识别该属性才能正确处理表单提交。任何帮助将不胜感激。

谢谢

最佳答案

您的页面中似乎只有一个表单,并且您尝试使用 jQuery 中的 name 属性选择它的唯一原因是 jQuery 会将表单的名称发送到服务器。

好吧,那是行不通的。一旦您通过 jQuery 获得了对表单的引用,您使用哪个选择器就不再重要了。如果您想要将 name 参数与表单名称一起发送到后端代码,请在表单内使用隐藏输入:

<input type="hidden" name="form-name" value="updateNetwork" />

然后,您可以按照您想要的方式获取对该表单的引用。正如 @anvlasop 所说,最好的方法是为您的表单提供一个 id 属性。

已编辑

您以错误的方式创建 jQuery 表单对象。如果你有这个:

<input type="submit" name="updateNetwork" />

那么你不能这样做:

$('form[name="updateNetwork"]).submit();

我假设您在 submit 事件的事件处理程序内调用此方法 submit()。不要那样做!您应该做的是,仅在验证中出现错误时才取消 preventDefault ,否则发送表单:

//Never do this:
$('form').bind('submit', function(e) {
    var valid;
    //code to validate
    e.preventDefault();

    if (valid) $('form').unbind('submit').submit();
 });

这样做:

$('form').bind('submit', function(e) {
   var valid;
   try {
       //code to validate
   } catch (error) {
       valid = false;
   }
   if (!valid) e.preventDefault();
});  

如果验证期间出现异常,这也会阻止表单的发送。

关于javascript - 在 jQuery 表单提交中传递名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454884/

相关文章:

javascript - jQuery 无法从通过 ajax 调用返回的某些 html 中找到类元素

php - 有没有办法从过去的 html 表单帖子中获取表单请求?

C# Windows 窗体文本框自动换行不起作用

jquery - 使用 jquery ui droppable 和 elementFromPoint 获取放置元素下方的元素

javascript - 悬停下拉菜单无法使用 jquery

php - 如何使用php和sql获取表格中的复选框

javascript - 单击同一行中的按钮后减少一个值 - knockout

javascript - 在 URL 中使用多个片段标识符

javascript - 如何为ajax定义变量,以及addeventlistener/pushstate函数? JavaScript,而不是 jQuery

javascript - 如何对页面导航进行单元测试?