2015-05-05 12 views
8

Tôi đang sử dụng hộp khởi động để tạo cửa sổ bật lên có biểu mẫu và tôi phải xác thực chúng và đưa lỗi cho người dùng nếu có sự cố với các trường biểu mẫu. Nhưng tôi không thể ngăn cửa sổ hộp khởi động đóng sau khi người dùng nhấp vào nút 'Send'. Tôi cần hiển thị thông báo lỗi cho người dùng, do đó, lỗi có thể được sửa và biểu mẫu sẽ được gửi lại.Ngăn không cho hộp khởi động đóng cửa sổ bật lên

return false hoạt động ok, nhưng sau đó tôi không thể tìm thấy phương pháp, để khôi phục phương thức khởi động bình thường để đóng cửa sổ.

Có ai đó phải đối mặt với cùng một vấn đề và cách bạn thoát khỏi tình trạng này không?

Như hỏi, fsFiddle:

<button id="test">Bootbox</button> 

Code:

$(document).ready(function() { 

    $("#test").on('click', function() { 

     bootbox.dialog({ 
      title: "This is a form in a modal.", 
      message: '<div class="row"> ' + 
      '<div class="col-md-12"> ' + 
      '<form class="form-horizontal"> ' + 
      '<div class="form-group"> ' + 
      '<label class="col-md-4 control-label" for="name">Name</label> ' + 
      '<div class="col-md-4"> ' + 
      '<input id="name" name="name" type="text" placeholder="Your name" class="form-control input-md"> ' + 
      '<span class="help-block">Here goes your name</span> </div> ' + 
      '</div> ' + 
      '<div class="form-group"> ' + 
      '<label class="col-md-4 control-label" for="awesomeness">How awesome is this?</label> ' + 
      '<div class="col-md-4"> <div class="radio"> <label for="awesomeness-0"> ' + 
      '<input type="radio" name="awesomeness" id="awesomeness-0" value="Really awesome" checked="checked"> ' + 
      'Really awesome </label> ' + 
      '</div><div class="radio"> <label for="awesomeness-1"> ' + 
      '<input type="radio" name="awesomeness" id="awesomeness-1" value="Super awesome"> Super awesome </label> ' + 
      '</div> ' + 
      '</div> </div>' + 
      '</form> </div> </div>', 
      buttons: { 
       success: { 
        label: "Save", 
        className: "btn-success", 
        callback: function() { 
         var name = $('#name').val(); 
         var answer = $("input[name='awesomeness']:checked").val() 
         console.log(name + " " + answer); 
        } 
       } 
      } 
     }); 

    }); 
}); 
+0

Nó thường hữu ích cũng bao gồm mã mẫu trong câu hỏi riêng của mình, cả hai cho đầy đủ. và để bảo vệ chống lại thối liên kết cuối cùng được đặt trong đó. –

Trả lời

14

Tôi không chắc chắn 100% về những gì nó là bạn muốn. Tôi hiểu nó là: "Giữ cho phương thức mở cho đến khi biểu mẫu hợp lệ".

Nếu đây là những gì bạn cần, bạn có thể tiến hành như vậy:

callback: function() { 
    var name = $('#name').val(); 
    var answer = $("input[name='awesomeness']:checked").val() 
    console.log(name + " " + answer); 

    // proceed to your validation, if your form is not valid 
    // the validation should return false 
    var formIsValid = doFormValidation(); 
    if(!formIsValid) { 
     // show error messages to the user here 
     showFormErrors(); 
     // prevent the modal from closing 
     return false; 
    } 
} 
Các vấn đề liên quan