提交前如何检查?

时间:2011-06-18 12:56:33

标签: jquery submit preventdefault

在进行提交之前,我需要检查用户是否点击了按钮。

现在, 我正在使用$(document).ready(function(){并且我想插入它,检查按钮是否被按下的代码。

这个“按钮”只是一个简单的div,带有背景图像,如果你点击它就会改变图像。 所以我需要添加一个变量,所以我可以创建一个if语句,对吗?

我知道JQ中有preventDefault函数,但尝试使用它没有成功。

感谢您的帮助

4 个答案:

答案 0 :(得分:5)

jQuery('#yourForm').bind('submit',function(e){

    //do your test
    //if fails 
    e.preventDefault();

});

答案 1 :(得分:0)

$('#form_element').submit(function() {
    return false;  // do this if you don't want to submit the form
});

您可以根据需要添加任意数量的提交事件。如果一个或多个提交事件返回false,则不会提交表单;

答案 2 :(得分:0)

这会回答你的问题吗?

$(document).ready(function(){
    $('#yourDiv').click(function() {
        $('#yourForm').submit();
    });
});

我在“按钮div”上添加了一个点击处理程序。单击它时,它会提交表单。 所以你不必在表单中有一个提交按钮,只需要你的div按钮

答案 3 :(得分:0)

添加另一个输入元素,用于存储是否单击该按钮

<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
}