将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")); });
UPDATE
如果您不知道默认select,并且您不能更新html,请在dom中添加以下代码,
$("#my_select").data("default-value",$("#my_select").val());
$("#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?