2016-07-22 58 views
1

形式我在本地JS有这个JavaScript本等同于jQuery的形式

<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? 
}); 

回答

2

在你的代码e是绑定在#submit按钮的事件,它被称为事件对象的对象。它有几个属性,但不是形式。所以,

您可以使用此:

$('#submit').click(function(e){ 
    e.preventDefault(); 
    var form = $(this).closest('form'); // <----gets you the form 
    console.log(form) // I got undefined? 
}); 

可以理解,#submit按钮的形式里面的话,你在DOM树遍历了.closest()拿到形式。

,如果你需要有从jQuery代码的本地DOM节点,可以追加[0]这里:

var form = $(this).closest('form')[0]; // <----gets you the native DOM node of form 
0

随着你的表情,你尽量选择使用id =“提交”现有的DOM元素。你可以看看这个帖子,我想回答你的问题,它表明你如何动态创建一个按钮使用jQuery:

How to add a button dynamically using jquery

0

系统可根据其内部元件的形式,你可以只使用element.form

$('#submit').click(function(e){ 
    e.preventDefault(); 

    console.log(this.form); 
}); 

e表示为什么我们使用e.preventDefault();以免其默认事件的事件。

this代表当前点击的元素submit就是为什么我们可以使用this.form获取父窗体。

希望这会有所帮助。