.reset()函数导致错误而不是执行

时间:2014-07-28 10:18:38

标签: javascript jquery

出于某种原因,我无法编码到重置按钮。我有这段代码:

 <form name="sub">
   ...
   <button type=submit>Submit</button>
   <button type=reset>Reset</button>
 </form>

当我点击重置时,它会像往常一样重置表单。但是,当我尝试在按钮上绑定手动重置选项时,如此代码,它会返回错误:

 var $f = $("form[name=sub]");

 $f.find("button[type=reset]").click(function(e){
   e.preventDefault();
   $f.reset(); // <-- Uncaught TypeError: undefined is not a function
   $(window).scrollTop(0);
 });

我收到此错误:Uncaught TypeError: undefined is not a function

尝试使用document.form.sub.reset();并尝试使用$f =(全局变量)代替var $f =,而不是{{1}}。发生了什么事?

2 个答案:

答案 0 :(得分:7)

reset()是一个DOM方法,所以在DOM对象$f[0]

上使用它

答案 1 :(得分:3)

然后你通过DOM 0尝试document.form.sub.reset();你有错误印刷:

document.forms.sub.reset();

您可以在jQuery中使用它,只需访问node

 $("form[name=sub]").find("button[type=reset]").click(function(e){
   e.preventDefault();
   $f.get(0).reset();//jQuery.fn.get return node, not jQuery object
   $(window).scrollTop(0);
 });