отменить класс не работает для submitHandler игнорировать нажатие кнопки - PullRequest
1 голос
/ 04 мая 2011

Получил эти две кнопки изображения:

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

2 голосов
/ 04 мая 2011

Использование класса cancel только обойдет проверку и не остановит фактическую отправку . Вам нужно будет обработать эту часть в другом месте. Возможные обходные пути:

  1. Измените тип кнопки Cancel, чтобы она больше не вызывала отправку.
  2. Запустите отправку формы самостоятельно, только когда нажата правильная кнопка - см. JQuery Validate - class = "отмена", кнопка отправки останавливает проверку только один раз
1 голос
/ 04 мая 2011

Не можете использовать просто:

<img src="images/Cancel.png" id="btnCancel" onclick="hide_edit_div()" />
0 голосов
/ 12 июня 2012

Измените тип кнопки Отмена, как это;

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