1

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

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

这个“按钮”只是一个简单的div,带有背景图像,如果你点击那里,它会改变图像。所以我需要添加一个变量,这样我才能做一个 if 语句,对吧?

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

感谢帮助

4

4 回答 4

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

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

});
于 2011-06-18T13:03:18.337 回答
0
$('#form_element').submit(function() {
    return false;  // do this if you don't want to submit the form
});

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

于 2011-06-18T13:01:06.573 回答
0

这回答了你的问题了吗 ?

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

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

于 2011-06-18T13:02:22.297 回答
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
}
于 2011-06-18T13:19:22.440 回答