我遇到了一个问题,即下拉元素的值正在被正确更改,但是由于所选值不正确而在页面上显示的内容。
例如,根据下面的逻辑,当为#searchParam1选择值'SEL'时,#searchParam2的值应该通过resetSelection()方法重置为'SEL'。事实上,当我调试时,我可以验证值是否按预期更改。但是,即使使用.change()调用,下拉列表仍然保持不变。
我已尽力将代码解析为与我的问题完全相关的内容,所以请原谅任何拼写错误或缺少括号(完整代码在任何时候都不会产生任何错误)。
$(document).ready(function () {
$('#searchParam1').change(function () {
var value = $('#searchParam1').val()
var number = 1
if (value == 'SEL') {
resetSelection(number)
}
})
$('#searchParam2').change(function () {
var value = $('#searchParam2').val()
var number = 2
if (value == 'SEL') {
resetSelection(number)
}
})
})
function resetSelection(number) {
$('#searchParam' + (number + 1).toString()).val('SEL').change()
}
答案 0 :(得分:0)
此代码似乎工作正常:小提琴here
HTML
<select id="searchParam1">
<option>SEL</option>
<option>Other1</option>
<option>Other2</option>
</select>
<select id="searchParam2">
<option>SEL</option>
<option>Other1</option>
<option>Other2</option>
</select>
JS代码
$(document).ready(function() {
$('#searchParam1').change(function() {
var value = $('#searchParam1').val()
var number = 1
if (value == 'SEL') {
resetSelection(number)
}
});
$('#searchParam2').change(function() {
var value = $('#searchParam2').val()
var number = 2
if (value == 'SEL') {
resetSelection(number)
}
});
});
function resetSelection(number) {
$('#searchParam' + (number + 1).toString()).val('SEL');
}