我有两个HTML select
框。我在另一个框中进行选择时需要重置一个select
框。
<select id="name" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name2" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
当我选择第一个select
的选项(即id="name"
)时,我需要将第二个select
重置为select all
;同样,当我选择第二个select
的选项(即id="name2"
)时,我需要将第一个select
重置为select all
。
我该怎么做?
答案 0 :(得分:263)
这样的事情可以解决问题:https://jsfiddle.net/TmJCE/898/
$('#name2').change(function(){
$('#name').prop('selectedIndex',0);
});
$('#name').change(function(){
$('#name2').prop('selectedIndex',0);
});
答案 1 :(得分:44)
如果您只想将select元素重置为第一个位置,最简单的方法可能是:
$('#name2').val('');
要重置文档中的所有选择元素:
$('select').val('')
编辑:要根据下面的评论澄清,这会将select元素重置为其第一个空白条目,并且仅当列表中存在空白条目时才会重置。
答案 2 :(得分:21)
正如@PierredeLESPINAY在评论中所指出的那样,我的原始解决方案是错误的 - 它会将下拉列表重置为最顶层的选项,但仅仅因为undefined
返回值已解析为索引0。
这是一个正确的解决方案,它考虑了selected
属性:
$('#name').change(function(){
$('#name2').val(function () {
return $(this).find('option').filter(function () {
return $(this).prop('defaultSelected');
}).val();
});
});
DEMO: http://jsfiddle.net/weg82/257/
原始答案 - INCORRECT
在jQuery 1.6+中,您需要使用.prop
方法来获取默认选择:
// Resets the name2 dropdown to its default value
$('#name2').val( $('#name2').prop('defaultSelected') );
要在第一个下拉列表更改时动态重置,请使用.change
事件:
$('#name').change(function(){
$('#name2').val( $('#name2').prop('defaultSelected') );
});
答案 3 :(得分:7)
如果要将选择重置为具有&#34;选择&#34;的选项,请使用此选项。属性。类似于form.reset()内置的javascript函数到select。
$("#name").val($("#name option[selected]").val());
答案 4 :(得分:4)
如果您只想将其恢复到第一个选项,请按以下步骤操作: &#34;选择一个选项&#34; &#34; Select_id_wrap&#34;显然是选择的div,但我只是想清楚地说明它是否与它的工作原理有关。 Mine重置为点击功能,但我确信它也可以在改变中使用...
$("#select_id_wrap").find("select option").prop("selected", false);
答案 5 :(得分:4)
这对我有很大帮助。
$(yourSelector).find('select option:eq(0)').prop('selected', true);
答案 6 :(得分:3)
使用以下代码。看到它在这里工作http://jsfiddle.net/usmanhalalit/3HPz4/
$(function(){
$('#name').change(function(){
$('#name2 option[value=""]').attr('selected','selected');
});
$('#name2').change(function(){
$('#name option[value=""]').attr('selected','selected');
});
});
答案 7 :(得分:3)
这是重置表单中所有选择框的最灵活/可重复使用的方式。
var $form = $('form') // Replace with your form selector
$('select', $form).each(function() {
$(this).val($(this).prop('defaultSelected'));
});
答案 8 :(得分:3)
也可以使用
$('#name2').change(function(){
$('#name').val('');//You can set the first value of first one if that is not empty
});
$('#name').change(function(){
$('#name2').val('');
});
答案 9 :(得分:1)
以下是如何使用定义为默认值的随机选项元素来处理它(在这种情况下,文本2是默认值):
<select id="name2" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2" selected="selected">Text 2</option>
<option value="3">Text 3</option>
</select>
<script>
$('#name2 option[selected]').prop('selected', true);
</script>
答案 10 :(得分:0)
我在jQuery v1.9.1的@Jens Roland的回答中使用defaultSelected属性时遇到了问题。更通用的方法(具有许多依赖选择)将在依赖选择中放置数据默认属性,然后在重置时迭代它们。
<select id="name0" >
<option value="">reset</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name1" class="name" data-default="1">
<option value="">select all</option>
<option value="1" selected="true">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name2" class="name" data-default="2">
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2" selected="true">Text 2</option>
<option value="3">Text 3</option>
</select>
和javascript ...
$('#name0').change(function(){
if($('#name0').val() == '') {
$('select.name').each(function(index){
$(this).val($(this).data('default'))
})
} else {
$('select.name').val($('#name0').val() );
}
});
请参阅http://jsfiddle.net/8hvqN/了解上述工作版本。
答案 11 :(得分:0)
我在select标记中创建了一个新选项,其值为空字符串(&#34;&#34;)并使用:
$("form.query").find('select#topic').val("");
答案 12 :(得分:0)
你可以试试这个:
$( 'select' ).each( function () {
if ( $( this ).children().length > 0 ) {
$( $( this ).children()[0] ).attr( 'selected', 'selected' );
$( this ).change();
}
} );
答案 13 :(得分:0)
使用jquery绑定onchange事件进行选择,但不需要创建另一个$(this)
jquery对象。
$('select[name=name2]').change(function(){
if (this.value) {
console.log('option value = ', this.value);
console.log('option text = ', this.options[this.selectedIndex].text);
// Reset selected
this.selectedIndex = this.defaultSelected;
}
});
答案 14 :(得分:0)
使用此代码将所有选择字段重置为默认选项,其中定义了所选属性。
<select id="name1" >
<option value="1">Text 1</option>
<option value="2" selected="selected" >Default Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name2" >
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3" selected="selected" >Default Text 3</option>
</select>
<script>
$('select').each( function() {
$(this).val( $(this).find("option[selected]").val() );
});
</script>
答案 15 :(得分:0)
这是我使用的最佳解决方案。这将适用于超过1个选择框
$("select").change(function(){
var thisval = $(this).val();
$("select").prop('selectedIndex',0);
$(this).val(thisval);
})
&#13;
答案 16 :(得分:0)
选择元素中的设置选项1可以通过此段完成。要直观地显示它,请在最后添加.trigger('change')。
$('#name').removeAttr('selected').find('option:first').attr('selected', 'selected').trigger("change");
答案 17 :(得分:-1)
很简单:
$('#DropdownToRestId').find('option:selected').val('');