2017-09-27 84 views
0

我正在使用下面的单击事件重置表单。Boostrap Modal中的表单不会重置

'click .resetBulkAssignForm' : function(events, template){ 
    console.log('Reset', $(".bulkAssignForm")[0]); 
    $(".bulkAssignForm")[0].reset(); 
    $(".bulkAssignForm").find("select").val(""); 
    $('#firmName').select2('data', null); 
}, 

我也尝试了大多数可用于解决这个问题的答案。

问题:如何在Bootstrap模式中重置窗体?

下面是控制台输出模式的图像。

enter image description here

注:我使用AdminLTE 2.3.11,选择二。也请带我已经在SO链接已经尝试过解决方案,如how-to-clear-all-input-fields-in-bootstrap-modal-when-clicking-data-dismiss-butt一张纸条,how-to-reset-form-body-in-bootstrap-modal-box

在你需要看情况添加HTML代码。

<div id="myBulkModal" class="modal fade modal-primary" role="dialog"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h2 class="modal-title">Bulk Assignment</h2> 
     </div> 
     <div class="modal-body"> 
      <section class="content"> 
      <form class="bulkAssignForm"> 
       <fieldset> 
       <div class="row"> 
        <input type="hidden" id="taskIdInput" value="{{getTaskId}}" /> 
       </div> 
       <div class="row"> 
        <div class="input-group col-sm-12"> 
        <label for="firmName">Firms</label><br /> 
        <select id="firmName" multiple class="form-control input-lg" required> 
         {{#each firmNamesFromAssignment}} 
          <option value="{{value}}">{{label}}</option> 
         {{/each}} 
        </select> 
        </div> 
       </div> 
       <br /> 
       <div class="row"> 
        <div class="input-group col-sm-12"> 
        <label for="assignee">Assignee</label><br /> 
        <select id="assignee" class="form-control input-lg" required> 
         <option selected="selected" value="">Select Option</option> 
         {{#each usersSelect2}} 
          <option value="{{value}}">{{label}}</option> 
         {{/each}} 
        </select> 
        </div> 
       </div> 
       <br /> 
       <div class="row"> 
        <div class="input-group col-sm-12"> 
        <label for="reviewedBy">Reviewer</label><br /> 
        <select id="reviewedBy" class="form-control input-lg" required> 
         <option selected="selected" value="">Select Option</option> 
         {{#each usersSelect2}} 
          <option value="{{value}}">{{label}}</option> 
         {{/each}} 
        </select> 
        </div> 
       </div> 
       <br /> 
       <div class="row"> 
        <!-- buttons --> 
        <button type="submit" class="btn btn-outline"> 
        <span class="glyphicon glyphicon-ok"></span> Assign 
        </button> 
        &nbsp;&nbsp; 
        <button type="button" class="btn btn-outline resetBulkAssignForm"> 
        <span class="glyphicon glyphicon-off"></span> Reset 
        </button> 
        &nbsp;&nbsp; 
        <button type="button" class="btn btn-outline" data-dismiss="modal"> 
        <span class="glyphicon glyphicon-refresh"></span> Close 
        </button> 

       </div> 
       </fieldset> 
      </form> 
      </section> 
     </div> 
     </div> 
    </div> 
    </div> 
+0

你所有的选择都是'Select2',对吗? – Styx

+0

是的,你是对的。 –

+0

可以肯定的是,使用了什么确切版本的'Select2'? – Styx

回答

0

改变Select2的底层<select>值后或<input>你必须触发change事件,因此这种变化将通过Select2代码处理,并适当地呈现:

$(".bulkAssignForm").find("select").val("").trigger("change"); 

试验成功上AutoForm Demo test page

+0

再次感谢您的卓越努力。 –

+0

@AnkurSoni不客气:) – Styx

+0

你能帮忙吗? https://stackoverflow.com/questions/46469831/search-text-not-displayed-when-select2-changed-to-multiple-selection-mode有关同一问题,但不同的问题。 –