【问题标题】:How to check before submit?提交前如何检查?
【发布时间】:2011-06-18 12:56:33
【问题描述】:
我需要在提交之前检查用户是否点击了按钮。
现在,
我正在使用$(document).ready(function(){,我想在其中输入用于检查按钮是否被按下的代码。
这个“按钮”只是一个简单的div,带有背景图像,如果你点击那里,图像就会改变。
所以我需要添加一个变量,这样我才能做一个 if 语句,对吧?
我知道 JQ 中有 preventDefault 函数,但尝试使用它没有成功。
感谢帮助
【问题讨论】:
标签:
jquery
submit
preventdefault
【解决方案1】:
jQuery('#yourForm').bind('submit',function(e){
//do your test
//if fails
e.preventDefault();
});
【解决方案2】:
这能回答你的问题吗?
$(document).ready(function(){
$('#yourDiv').click(function() {
$('#yourForm').submit();
});
});
我在“按钮 div”上添加了一个点击处理程序。单击它时,它会提交表单。
所以你的表单中不必有提交按钮,只有你的 div 按钮
【解决方案3】:
$('#form_element').submit(function() {
return false; // do this if you don't want to submit the form
});
您可以根据需要添加任意数量的提交事件。如果一个或多个提交事件返回 false,则不会提交表单;
【解决方案4】:
添加另一个存储按钮是否被点击的输入元素
<div id="divElement">
<input type="hidden" name="buttonIsClicked" value="0" />
</div>
并为 div 设置事件处理程序。
$("#divElement").click( function() {
$(this).children("input[name=buttonIsClicked]").val(1);
});
在 div 中添加 input 元素可以使代码执行得更快,因为它只需要在 div 元素下而不是整个 DOM 下进行搜索。如果您想将输入元素放在外面,那么您也可以通过使用来优化您的代码
$(this).parent().find("input[type=buttonIsClicked]");
在提交表单时,您可以通过
进行检查
$(myFormElement).submit(function() {
if($(this).find("input[name=buttonIsClicked]").val() == 0)
return false;
//proceed here if the button div is clicked
}