防止表单上的默认提交jQuery
这有什么问题?
HTML:
<form action="http://localhost:8888/bevbros/index.php/test" method="post" accept-charset="utf-8" id="cpa-form" class="forms"> <input type="text" name="zip" value="Zip code" id="Zip" class="required valid"> <input type="submit" name="Next" value="Submit" class="forms" id="1"> </form>
jQuery的:
$("#cpa-form").submit(function(e){ e.preventDefault(); });
尝试这个:
$("#cpa-form").submit(function(e){ return false; });
使用新的“on”事件语法。
$(document).ready(function() { $('form').on('submit', function(e){ // validation code here if(!valid) { e.preventDefault(); } }); });
引用: https : //api.jquery.com/on/
我相信上面的答案都是正确的,但是没有指出为什么submit
方法不起作用。
那么,如果jQuery无法获得form
元素,那么submit
方法将不起作用,jQuery不会给出任何错误。 如果您的脚本放在文档的头部,请确保代码在DOM
准备就绪后运行。 所以, $(document).ready(function () { // your code here // });
将解决问题。
最好的做法是, 总是把你的脚本放在文档的底部。
$('#cpa-form input[name="Next"]').on('click', function(e){ e.preventDefault(); });
$(document).ready(function(){ $("#form_id").submit(function(){ return condition; }); });
您好,寻求一个解决scheme,使谷歌跟踪代码pipe理器(GTM)的Ajaxforms的工作,返回false阻止完成,并提交事件的实时激活谷歌分析解决scheme是改变返回false由e.preventDefault() ; 正确地工作遵循代码:
$("#Contact-Form").submit(function(e) { e.preventDefault(); ... });
你的代码很好,只需要把它放在ready函数中。
$(document).ready( function() { $("#cpa-form").submit(function(e){ e.preventDefault(); }); }
已弃用 – 这部分已经过时,请不要使用它。
你也可以尝试这个代码,如果你有后来添加dynamic表单。 例如,你用ajax加载了一个窗口asynchronous,并希望提交这个表单。
$('#cpa-form').live('submit' ,function(e){ e.preventDefault(); // do something });
更新 – 如果你想处理dynamic添加的内容,你应该使用jQuery on()方法尝试侦听文档DOM。
情况1,静态版本:如果你只有几个听众,你的表单是硬编码的,那么你可以直接在“文档级”上听。 我不会在文档级别使用监听器,但我会尝试在末日树中更深入一些,因为它可能会导致性能问题(取决于您的网站和您的内容的大小)
$('form#formToHandle').on('submit'...
要么
$('form#formToHandle').submit(function(e) { e.preventDefault(); // do something });
情况2,dynamic版本:如果您已经在代码中收听文档,那么这种方式对您有好处。 这也适用于以后通过DOM添加的代码或者通过AJAXdynamic添加的代码。
$(document).on('submit','form#formToHandle',function(){ // do something like e.preventDefault(); });
要么
$(document).ready(function() { console.log( "Ready, Document loaded!" ); // all your other code listening to the document to load $("#formToHandle").on("submit", function(){ // do something }) });
要么
$(function() { // <- this is shorthand version console.log( "Ready, Document loaded!" ); // all your other code listening to the document to load $("#formToHandle").on("submit", function(){ // do something }) });