取消类不适用于submitHandler忽略按钮单击

时间:2011-05-04 17:00:49

标签: jquery submit validation

有这两个图像按钮:

<input type="image" src="images/Update.png" name="btnSubmit" value="Update"/>
<input type="image" src="images/Cancel.png" value="Cancel" name="btnCancel" class="cancel" onclick="hide_edit_div()" />

现在,即使单击“取消”按钮也会运行提交处理程序。如何修改它以忽略它?

$(document).ready(function(){
  if(this.forms[4]) {
    $("#editTaskInfo").validate({
        rules:{"task_title": {required: true},
               "task_instr": {required: true},
               "task_desc" : {required: true}
                },
       submitHandler: function(form) {
         var postData = $('#editTaskInfo').serialize();
         $.ajax({type: "POST",
                 url: "post_task.php",
                 data: postData,
                 dataType: "json",
                 success: function(data) {
                   if(textStatus == 'success') {
                     $("div.error span").html(data.msg);
                     $("div.error img").hide();
                     $("div.error").show();
                     $("#static_task_price").text(data.price);
                     $("#static_title").text(data.title);
                     $('html, body').animate({scrollTop:0}, 'fast');
                     hide_edit_div();
                     $("div.error").fadeOut(10000);
                   }
                 },
                 error: function(jqXHR, textStatus, errorThrown) {
                   $("div.error span").html(errorThrown);
                   $("div.error img").show();
                   $("div.error").show();
                 }
         });
       }
    }
    );
  }
});  

编辑:(因为我无法自己回答8小时,多么愚蠢的限制

将第二个按钮修改为这样的div:

<div id="btnCancel" style="float:right; cursor:pointer; width:50px; height:20px; background-image: url(images/Cancel.png); " onclick="hide_edit_div()">&nbsp;</div>

现在,如果我只能正确定位它。 ; - )

3 个答案:

答案 0 :(得分:2)

使用cancel课程只会bypass the validation and will not stop the actual submission。您需要在其他地方处理该部分。可能的解决方法:

  1. 更改Cancel按钮的类型,使其不再触发提交。
  2. 仅在点击了正确的按钮时自行触发表单提交 - 请参阅JQuery Validate - class="cancel" submit button only stops validation once

答案 1 :(得分:1)

你不能简单地使用:

<img src="images/Cancel.png" id="btnCancel" onclick="hide_edit_div()" />

答案 2 :(得分:-1)

像这样改变取消按钮的类型;

<input class="cancel" type="button" id="close" value="Cancel" />