将select值重置为默认值

我有select框

<select id="my_select"> <option value="a">a</option> <option value="b" selected="selected">b</option> <option value="c">c</option> </select> <div id="reset"> reset </div> 

我也有重置button,这里默认(select)值是“B”,假设我select“C”和我需要插入后select框值默认,如何使这个使用jQuery?

 $("#reset").on("click", function () { // What do here? }); 

jsfiddle: http : //jsfiddle.net/T8sCf/1/

您可以使用选项元素的defaultSelected属性 :

包含selected HTML属性的初始值,指示是否默认select该选项。

所以,DOM接口已经跟踪了最初select哪个选项。

 $("#reset").on("click", function () { $('#my_select option').prop('selected', function() { return this.defaultSelected; }); }); 

DEMO

这甚至可以用于多选元素。

如果您不想迭代所有选项,但在find最初select的选项之后“中断”,则可以使用.each代替:

 $('#my_select option').each(function () { if (this.defaultSelected) { this.selected = true; return false; } }); 

没有jQuery:

 var options = document.querySelectorAll('#my_select option'); for (var i = 0, l = options.length; i < l; i++) { options[i].selected = options[i].defaultSelected; } 
 $("#reset").on("click", function () { $("#my_select").val('b');//Setting the value as 'b' }); 
 $('#my_select').get(0).selectedIndex = 1; 

但是,在我看来,更好的方法是只使用HTML( <input type="reset" /> ):

 <form> <select id="my_select"> <option value="a">a</option> <option value="b" selected="selected">b</option> <option value="c">c</option> </select> <input type="reset" value="reset" /> </form> 
  • 检查jsFiddle演示 。

为什么不使用简单的JavaScript函数,并在onclick事件调用它?

 function reset(){ document.getElementById("my_select").selectedIndex = 1; //1 = option 2 } 

您可以使用select元素的data属性

 <select id="my_select" data-default-value="b"> <option value="a">a</option> <option value="b" selected="selected">b</option> <option value="c">c</option> </select> 

你的JavaScript,

 $("#reset").on("click", function () { $("#my_select").val($("#my_select").data("default-value")); }); 

http://jsfiddle.net/T8sCf/10/

UPDATE


如果您不知道默认select,并且您不能更新html,请在dom中添加以下代码,

 $("#my_select").data("default-value",$("#my_select").val()); 

http://jsfiddle.net/T8sCf/24/

 $("#reset").on("click", function () { $('#my_select').prop('selectedIndex',0); }); 

一个很好的干净的方法是添加一个data-default属性到select

 <select id="my_select" data-default="b"> ... </select> 

那么代码真的很简单:

 $("#reset").on("click", function () { var $select = $('#my_select'); $select.val($select.data('default')); }); 

现场示例: http : //jsfiddle.net/T8sCf/7/

将事件处理程序绑定到select的焦点事件以捕获之前的值。 然后在单击重置时将select的值设置为以前的值。

 var previousValue = ""; $("#my_select").on("focus",function(){ previousValue = $(this).val(); }); $("#reset").on("click", function () { $("#my_select").val(previousValue); }); 

工作示例: http : //jsfiddle.net/T8sCf/17/

你可以这样做:

 var preval = $('#my_select').val(); // get the def value $("#reset").on("click", function () { $('#my_select option[value*="' + preval + '"]').prop('selected', true); }); 

结帐这个小提琴

var事件之前保存默认的加载值,然后获得带有属性select器的选项,并保持var值将属性设置为选中状态。

这段代码将帮助你。

 <html> <head> <script type="text/JavaScript" src="jquery-2.0.2.min.js"></script> <script type="text/JavaScript"> $(function(){ var defaultValue = $("#my_select").val(); $("#reset").click(function () { $("#my_select").val(defaultValue); }); }); </script> </head> <body> <select id="my_select"> <option value="a">a</option> <option value="b" selected="selected">b</option> <option value="c">c</option> </select> <div id="reset"> <input type="button" value="reset"/> </div> </body> 

如果使用Spring表单,则可能需要将所选内容重置为选项标签。 您将设置您的表单:selectid值为空string将您的select重置为默认的标签。

 <form:select path="myBeanAttribute" id="my_select"> <form:option value="" label="--Select One--"/> <form:options items="${mySelectionValueList}"/> </form:select> $("#reset").on("click", function () { $("#my_select").val(""); }); 

在有重置button的情况下。 除此以外

 $("#my_select").val(""); 

对于那些正在使用Bootstrap-select的人来说,你可能想用这个:

 $('#mySelect').selectpicker('render'); 

一个简单的方法是运行

  var myselect = $("select.SimpleAddAClass"); myselect[0].selectedIndex = 0; myselect.selectmenu("refresh"); 

用jquery:

 $("#reset").on("click", function() { $('#my_select').val($('#my_select').find('option[selected="selected"]').val()); } 

您也可以重置多个SELECT的值,然后触发提交button。

请看这里在行动:

现场示例:

 $(function(){ $("#filter").click(function(){ //alert('clicked!'); $('#name').prop('selectedIndex',0); $('#name2').prop('selectedIndex',0); $('#submitBtn').click(); }); }); 

这适用于我:

 $("#reset").on("click", function () { $("#my_select option[selected]").prop('selected', true); } 

您可以find具有select属性的默认选项,并将选项更改为该选项。

将所有select字段重置为默认选项,其中定义了所选属性。

 $("#reset").on("click", function () { // Reset all selections fields to default option. $('select').each( function() { $(this).val( $(this).find("option[selected]").val() ); }); }); 

我试图解决它像其他答案不幸的是,我没有得到一个正确的方式来做到这一点,一旦我尝试,我写下面:

 $('#<%=ddID.ClientID %>').get(0).selectedIndex = 0; 

这段代码适合我,我希望这对你们有用。

最好的祝福。

塞缪尔·阿尔瓦拉多

我有select框

 <select id="my_select"> <option value="a">a</option> <option value="b" selected="selected">b</option> <option value="c">c</option> </select> <div id="reset"> reset </div> 

我也有重置button,这里默认(select)的值是“B”,假设我select“C”和我需要插入后select框值默认,如何使这个使用Angular2?