隐藏模态后如何重置选择框?

时间:2015-04-28 21:20:45

标签: javascript jquery module modal-dialog jquery-selectbox

我有一个选择框:

<select class="selectpicker" id="select_seleccionar_proyecto_id">
    <option value="0">Seleccione..</option>
    <option value="1">Tarea número 1</option>
    <option value="2">Tarea número 2</option>
    <option value="3">Tarea número 3</option>
    <option value="4">Tarea número 4</option>
    <option value="5">Tarea número 5</option>
    <option value="6">Tarea número 6</option>
</select>   

选择框位于模态中,关闭模态后,选择框上次保留上次选择的选项。

我构建了一个隐藏模态后调用的方法,但我尝试过的任何东西似乎都没有重置选择框:

LimpiarModalTarea: function(){

    var self = this;

    //My attempts:
    /*
     * $("select option[value='0']").attr("selected","selected");
     * $("select_seleccionar_proyecto_id").val($("select option[value='0']").val());
     * $("#target").val($("#select_seleccionar_proyecto_id option:first").val());
     * $( "#select_seleccionar_proyecto_id option:first" ).val(); 
     */
},

我在LimpiarModalTarea中发出警报,当我关闭模态时,警报工作..所以我知道该方法被调用。

有什么建议吗?

模态图像 http://www.uppic.com/uploads/14302560911.jpg

编辑:

对不起,但我没有提到使用不同模块的工作。

在模块“A”中,我的方法包含打开模态方法并发布的按钮:

此方法包含html:

                    +                       
                    '<a href="#myModal2" role="button" class="btn btn-success btn-sm" id ="btn_seleccionarTarea_'+iContProyecto+'_id" data-toggle="modal"><strong>Seleccionar una tarea</strong></a>'
                    +   

此方法包含出版物:

PublicarBotonSeleccionarTarea: function(icontTarea){

    var self = this;

    $("#btn_seleccionarTarea_"+icontTarea+"_id").click(function(){
    self.publishers("seleccionProyecto_seleccionarTarea", icontTarea);
    });
},

在模块“B”中,我订阅了这个方法:

subscribers : function() {

    var self = this;
    self.sb.subscribe('seleccionProyecto_seleccionarTarea', function(data) {
    self.idTarea=data;
    self.showModal();
    });
    },

模态中的动作按钮:

CargarAcciones: function(){

    var self = this;
    self.hideError();
    $('#btn_modal_seleccionarTarea_cancelar_id').click(function(){

    self.HideModal();
    self.hideError();

    });  
    $('#btn_modal_seleccionarTarea_aceptar_id').click(function(){

    var seleccionTarea = $( "#select_seleccionar_proyecto_id option:selected" ).val();
    if(seleccionTarea!=0){
    self.envioNombreTarea();
    self.HideModal();
    }else{
    self.showError();

    }


    });
    },

然后我开始研究我之前提到的内容,所以我没有在同一模块上的按钮。

我需要清理模块B中的模态

2 个答案:

答案 0 :(得分:1)

正如charlietfl指出的那样,最简单的就是使用

$('select').val('0');

重置select元素,使第一个选项元素可见。

答案 1 :(得分:0)

您可以重置为空(空值) - 在选择框中不显示任何内容。

或者您可以重置为第一个值 - 选择框的第一个孩子。

JSnippet DEMO

看看:

&#13;
&#13;
$('button#1').click(function(){
    $('select').val('');
});
$('button#2').click(function(){
    $('select').val($('select').children().eq(0).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select class="selectpicker" id="select_seleccionar_proyecto_id">
  <option value="0">Seleccione..</option>
  <option value="1">Tarea número 1</option>
  <option value="2">Tarea número 2</option>
  <option value="3">Tarea número 3</option>
  <option value="4">Tarea número 4</option>
  <option value="5">Tarea número 5</option>
  <option value="6">Tarea número 6</option>         
</select>  
<button id='1'>Reset To nothing</button>
<button id='2'>Reset To first</button>
&#13;
&#13;
&#13;