【发布时间】:2017-01-15 23:07:31
【问题描述】:
我有一个带有默认选项 Select an option 的 html 选择元素,当我单击其他元素时,我试图更改它,例如:我有一个 value = MyText select option 的按钮,如果我单击如果该文本存在于我的选择选项中,我想搜索此元素,我使用 contains 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:如果有一个选项可以通过单击 input type="reset" 来重置我的所有输入(选择、文本、数字等),这可能是我重置问题的解决方案,因为我也尝试通过单击使用 (window.MyForm.reset()) 重置输入,但我最后选择的选项未重置。
【问题讨论】:
-
点击第二个按钮 (button2) 究竟应该完成什么?
-
@ScottMarcus 单击任何按钮应该会更改所选选项,但是我测试我的代码,这仅在您第一次单击每个按钮时才有效。
-
我建议更新您的问题,以反映您对 charlieftl 的回答发表的评论。
-
@chazsolo 就是这样!
if I click in this element I want to search if that text exists on my select options, I do this with contains
标签: javascript jquery