Как проверить форму, созданную в сообщении bootbox?

Я использую bootbox.js. Это позволяет пользователю создавать форму в ее части "сообщения". Но я хотел бы сделать некоторые проверки с использованием jquery, прежде чем я нажимаю кнопку отправки.

Это загрузочная коробка:

bootbox.confirm({
   title    : "Choose Item:",
   message  : 
            "<?php 
                echo "<form id='f_item'>";
                echo "<h3>Item: </h3><br/>";
                foreach($item as $row_item){
                    echo "<input type='checkbox' name='item' class='cek_item' value='".$row_pic->item."' />";
                }
                echo "</form>";
            ?>",
 buttons    : {
                cancel  : { label: '<i class="fa fa-times"></i> Batal' },
                confirm : { label: '<i class="fa fa-check"></i> OK'}
            },
 callback: function (result) {
                //If OK button is pressed
                if(result == true){
                   /*SENT FORM CODE*/
                }
            }
        });

Без добавления какой-либо формы проверки отправка работает. Но я не знаю, где поставить проверочный скрипт.

Это тестовый скрипт
$(".cek_item").on('change',function(event){ alert($(this).val()+" is choosen"); });
куда мне положить этот скрипт?

Проверка, которую я хотел бы сделать:

  • Если первый элемент проверен первым, остальная часть элемента не может быть проверена.
  • Если не первый элемент проверен первым, то пользователь не может проверить первый элемент.

1 ответ

Вы как бы злоупотребляете функцией bootbox.confirm, так как на самом деле она не предназначена для содержания форм. При этом вы добавили бы свое подтверждение, где у вас есть /*SENT FORM CODE*/ - если вы вернете false из этого обратного вызова, модал не закроется, так что-то вроде:

callback: function (result) {
    //If OK button is pressed
    if(result == true){
        /*SENT FORM CODE*/

        $("#f_item").validate();

        if($("#f_item").valid()) {
            /* form is valid */
        }
        else {
            /* form is not valid */
            return false;
        }
    }
}

Это предполагает, что вы также используете JQuery Validation.

Другие вопросы по тегам