Javascript这个表单相当于jquery表单
Javascript this form equivalent to jquery form
我在原生JS 中有这个
<button id="submit" onclick="javascript:validateForm(this.form);return false;">Submit</button>
我如何在jquery中做到这一点?我试过
$('#submit').click(function(e){
e.preventDefault();
console.log(e.form) // I got undefined?
});
在代码中,e
是绑定在#submit
按钮上的事件,它是一个称为事件对象的对象。它有几个属性,但没有形式。所以,
你可以使用这个:
$('#submit').click(function(e){
e.preventDefault();
var form = $(this).closest('form'); // <----gets you the form
console.log(form) // I got undefined?
});
可以理解为#submit
按钮在表单中,因此,您必须使用.closest()
在DOM树中遍历才能获得表单。
如果您需要从jquery代码中获得本机DOM节点,则可以在此处附加[0]
:
var form = $(this).closest('form')[0]; // <----gets you the native DOM node of form
使用表达式,您可以尝试选择一个id为"submit"的现有DOM元素。你可以看看这篇文章,我认为它回答了你的问题,它向你展示了如何使用jQuery:动态创建按钮
如何使用jquery 动态添加按钮
同样值得注意的是:
jquery/js——如何根据单击的提交按钮来选择父窗体?
然而,通常最好将事件附加到表单本身的提交事件,因为即使在提交时按下其中一个字段的回车键也会触发:
$('form#myform1').submit(function(e){
e.preventDefault(); //Prevent the normal submission action
var form = this;
// ... Handle form submission
});
要根据表单中的元素获取表单,只需使用element.form
:
$('#submit').click(function(e){
e.preventDefault();
console.log(this.form);
});
e
:表示我们为什么使用e.preventDefault();
的事件,因此它将阻止默认事件。
this
:表示当前点击的元素submit
,这就是为什么我们可以使用this.form
来获取父窗体。
希望这能有所帮助。
相关文章:
- 我未保存的更改指令需要适用于具有不同名称的所有表单
- 如何从应用于正文的css中排除特定的表单
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- Javascript表单.使一个条目依赖于另一个条目
- PHP表单适用于索引,但不适用于联系我们页面
- 制作表单's onsubmit仅适用于特定提交
- 如何防止我的$('form').submit(函数(事件))应用于某些表单
- JQuery验证仅适用于提交的表单中的第一个元素.[打算验证所有内容]
- jQuery表单验证只适用于一次发布
- 专注于第一个表单元素,无论它是什么.j查询对话框
- document.getElementById 适用于一个表单元素,但不适用于另一个表单元素
- javascript:表单不仅被IE取代,而且,它适用于所有其他浏览器
- 无法通过 Ajax 将 CSS 应用于表单输入
- 如何将 IF 语句应用于表单的<选择>关系
- 应用选择菜单的表单验证,类似于 html5 所需的属性
- 如何创建具有两种状态的按钮切换,其行为类似于表单输入的复选框
- ASP MVC jQuery验证专注于工作,但不专注于表单提交
- AngularJS 1.3-为什么表单在加载时有效,适用于长度最小的输入
- 相当于Javascript的oracle表单
- Javascript这个表单相当于jquery表单