モーダル内のフォームにブートストラップバリデーターを使用しています。バリデーターは、後続のフォームアクセスで保持されます。たとえば、次の操作を行う場合
- フォームにアクセスして、有効な値を入力し、フォームを送信します。
フォームに再度アクセスします。以前のフォーム送信で有効なエントリを入力したため、フィールドの色は緑色のままです。
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">Add new Node</h4> </div> <div class="modal-body"> <div class="modal-body"> <form role="form" id="addNodeForm"> <div class="form-group"> <label for="nodename" class="control-label">Node Name</label> <input type="text" name="nodename" class="form-control" id="nodename" required> </div> </form> </div> <!-- <div class="alert alert-success"> <a href="#" class="close" data-dismiss="alert">×</a> <div id="thanks"></div> </div> --> </div> <div class="modal-footer"> <button type="button" id="add-close" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" id="add-save" class="btn btn-primary">Save changes</button> </div> </div>
$('#myModal').on('hidden.bs.modal', function(){ $(this).removeData('bs.modal'); $('#nodename').val(""); $('#addNodeForm').bootstrapValidator('resetForm', true); }); $('#myModal').on('show.bs.modal', function () { // $('#addNodeForm').bootstrapValidator('resetForm', true); $(this).removeData('bs.modal'); $('#addNodeForm').bootstrapValidator('resetForm', true); $.ajax( { url: "node/getnodelist", type: "GET", success:function(text) { alert(text); nodelist = text; }, error: function(jqXHR, textStatus, errorThrown) { //if fails } }); }); $('#addNodeForm').bootstrapValidator({ feedbackIcons: { valid: 'glyphicon glyphicon-ok', invalid: 'glyphicon glyphicon-remove', validating: 'glyphicon glyphicon-refresh' }, fields: { nodename: { validators: { notEmpty: { message: 'Function name is required' } } } } });