我有一个带有默认选项的html select元素,Select an option
当我单击其他元素时,我试图对其进行更改,例如:我有一个value =的按钮MyText select option
,如果我单击此元素,我想搜索该文本存在于我的选择选项中,我使用包含jQuery的方法来执行此操作,并且似乎可以正常工作,问题是我可以在文本中包含多个元素,并且我不知道我的代码有什么问题,但似乎仅能解决第一个问题时间。这是我的问题的一个例子:
两个按钮,我单击第一个按钮即可正常工作,然后我单击第二个按钮也可正常工作,但随后我再次单击第一个按钮不起作用!
我也想创建一个重置选项,为此我正在使用.prop('selectedIndex', 0)
但不起作用。
这是我的示例代码:
$('.btn').click(function() {
var value = $(this).val();
$('#Sel option:contains(' + value + ')').attr("selected", true);
});
$('.btn2').click(function() {
$('#Sel').prop('selectedIndex', 0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button value="Button 1" class="btn">Button 1</button>
<button value="Button 2" class="btn">Button 2</button>
<button class="btn2">Reset</button>
<select name="" id="Sel">
<option value="0" selected disabled>Select an option</option>
<option value="1">Button 1</option>
<option value="2">Button 2</option>
</select>
PD:如果可以通过单击输入type =“ reset”来重置我的所有输入(选择,文本,数字等),这可能是我的重置问题的解决方案,因为我也尝试通过单击重置输入与(window.MyForm.reset()),但未重置我最后选择的选项。
无需将selected
属性添加到选项中,而是设置selected
属性。这将强制浏览器取消选择所有其他选定的选项(如果list不是<select multiple>
)。
$('.btn').click(function() {
var value = $(this).val();
$('#Sel option:contains(' + value + ')').prop("selected", true);
});
或者,您可以读取index
属性并selectedIndex
在列表上进行设置,这是IMO更加清晰的行为。
$('.btn').click(function() {
var value = $(this).val();
var index = $('#Sel option:contains(' + value + ')').prop("index");
$('#Sel').prop('selectedIndex', index);
});
同样,disabled
在重置表单时,第一个选项可能会在某些浏览器中引起麻烦。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句