Возникла проблема с функцией щелчка - PullRequest
1 голос
/ 31 января 2012
$('#delete').click(function (e) {
    e.preventDefault();
    var result = true;
    if($('.checkbox:checked').length < 1) {
        $.notifyBar({
            cls: "error",
            html: 'At least 1 checkbox must be checked.',
            delay: 5000
        });
        result = false;
    }
    return result;
});

проблема в том, что кнопка не отправляет форму, если все идет хорошо Что-то не так?

Ответы [ 4 ]

2 голосов
/ 31 января 2012

Вызов e.preventDefault() предотвращает действие по умолчанию кнопки, которая заключается в отправке формы.Вы должны звонить только тогда, когда вы не хотите, чтобы произошла отправка.

$('#delete').click( function(e) {
  if($('.checkbox:checked').length<1){
    $.notifyBar({
      cls: "error",
      html: 'At least 1 checkbox must be checked.',
      delay: 5000
    });

    // Invalid, stop the submit
    e.preventDefault();
  }
})
1 голос
/ 31 января 2012

Я думаю, это то, что вы пытаетесь сделать:

$('#delete').click(function (e) {
    var result = true;

    if($('.checkbox:checked').length < 1) {
        $.notifyBar({
            cls: "error",
            html: 'At least 1 checkbox must be checked.',
            delay: 5000
        });
        result = false;
    }

    if(!result) e.preventDefault();
});

При вызове e.preventDefault(); кнопка отправки не будет отправлена ​​независимо от того, что вы возвращаете из функции. В моем редактировании действие по умолчанию запрещено только в том случае, если результат равен false.

0 голосов
/ 31 января 2012

Вы должны поместить это в обработчик onsubmit вместо обработчика щелчков.Кроме того, убедитесь, что кнопка, которую вы хотите нажать, имеет тип submit:

 function doSubmit()
 {
    var result = true;

    if($('.checkbox:checked').length < 1) {
        $.notifyBar({
            cls: "error",
            html: 'At least 1 checkbox must be checked.',
            delay: 5000
        });
        result = false;
    }

    return result;
  }


 <form onsubmit="return doSubmit()">

     Checkboxes....

     <input type="submit" value="submit" />
 </form>
0 голосов
/ 31 января 2012

Использование e.preventDefault(); остановит отправку формы, даже если возвращается true.

...