2016-12-02 78 views
0

我只需要使用jQuery禁用表单提交。但它不起作用。为什么禁用表单提交不起作用?

HTML

<form action="" id="pro_register_form"> 
    First name:<br> 
    <input type="text" name="firstname" value=""> 
    <br> 
    Last name:<br> 
    <input type="text" name="lastname" value=""> 
    <br><br> 
    <input type="submit" value="Submit"> 
</form> 

JS

$(document).ready(function(){ 
    $('pro_register_form').submit(function() { 
     return false; 
    }); 
}); 

JS小提琴:https://jsfiddle.net/6wr7Lfdu/

回答

0

每jQuery的文档上.submit()

...我们可以通过调用事件对象.preventDefault()或者从我们的处理程序返回false取消提交操作。

通过调用.preventDefault()事件(回调的第一个参数)来停止正常事件处理程序可能是一个好习惯。

看起来,选择器传递给$()没有正确找到表单。使用ID选择器(即#)找到表单元素:

$(document).ready(function(){ 
    $('#pro_register_form').submit(function(event) { 
     //accept the event object as the first argument of our callback function 

     //and call preventDefault on it to stop the form submission 
     event.preventDefault(); 

     //returning false will also stop the form submission 
     return false; 
    }); 
}); 
1

工作小提琴https://jsfiddle.net/6wr7Lfdu/2/

$(document).ready(function(){ 
    $('#pro_register_form').submit(function(e) { 
     e.preventDefault(); 
     return false; 
    }); 
}); 
+0

'返回FALSE'应足以抵消表单提交(而无需调用'e.preventDefault()',每[文件] (https://api.jquery.com/submit/) –

+0

它也很好的做法,以防止浏览器提交表单提交默认行动 –

+0

好吧 - 是的,我同意这样的良好做法。 –