jquery-submit并没有阻止表单的提交

jquery submit is not stopping the form from being submitted

本文关键字:提交 表单 并没有 jquery-submit      更新时间:2023-09-26

我有以下html表单

<form action="/newPost" id="submit_new" method="get"><div class="iwill">
    <div class="iwill-holder">
        <div class="txt"></div><div class="f"><input class="text" id="quickpost" name="quickpost" type="text" value=""></div>
        <div class="img regularProgress" alt="Processing..."><input alt="Continue" class="iwill-btn movable" id="continue_submit" src="<?=$config['http']?>images/btn-2-continue-gray.png" type="image"></div>
    </div>
</div>
</form>

这是jquery函数:

$('#submit_new').submit(function() {
var error = 0;
    var quickpost = $("#quickpost").val();
    if( quickpost == '' ) {
    $("#quickpost").effect("shake", { times:3 }, 50);
    $('#quickpost').css("color","red");
    $('#quickpost').css("border","red 1px solid");
    error = 1;
    }else{
      $('#quickpost').css("border","gray 1px solid");
      $('#quickpost').css("color","black");
      error = 0;
    }

    if(errorCounter > 0){
      return false;
    }else{
        $.ajax({
                  url: 'sendPost.php?quickpost='+quickpost,
                  success: function(data) {
                    $('#result').prepend(data).slideDown('slow', function() {});
                  }
                });
    }
    return false;
});

从技术上讲,我试图使用ajax发布表单值,但无论我做什么,表单仍然会提交到操作页面。我甚至试图使所有路径都指向false,但它不起作用

尝试阻止默认行为

$('#submit_new').click(function(e) {
e.preventDefault();
...

你也有一个打字错误

if(errorCounter > 0){
    return false;
}else{

应该是:

if(error > 0){
    return false;
}else{
$('#submit_new').submit(function(e) {
   e.preventDefault();
   //other stuff
});

在submit函数中需要一个preventDefault((。

我得到的版本仍然使用return false来阻止表单提交http://jsfiddle.net/pKR6G/2/

注意:我已经评论掉了抖动效果的行,所以我不需要包括jQueryUI。

事件侦听器方法不关心从侦听器函数返回什么。您需要对传入的事件对象使用jquery preventdefault方法。