在我的SPA网站中,我动态地向页面添加了几个选择(下拉列表\组合框)标签。
我需要做的是检查哪一个只有一个选项(空字符串作为选项标题不计数),默认选择它们。
我还使用Knockout绑定,并且需要将所选值正确绑定到相关变量。
例如,如果这些是选择标记:
<div>
<select for="required" data-bind="options: list1, value: val1, optionsCaption: ''">
<option value=""></option>
<option value="1">One</option>
</select>
</div>
<div>
<select for="required" data-bind="options: list2, value: val2, optionsCaption: ''">
<option value=""></option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
</div>
代码应自动选择第一个选择中的唯一选项 我尝试使用此代码:
var chooseDefaultValues = function() {
var relevantComboBoxes = $("select[for='requiredComboBox']");
for (var i = 0; i < relevantComboBoxes.length; i++) {
var currentComboBox = relevantComboBoxes[i];
if (currentComboBox.disabled) continue; //Skip disabled combo-boxes
if (currentComboBox.length === 1) { //If there is only one child, select it
currentComboBox.selectedIndex = 0;
}
if (currentComboBox.length === 2) { //If there are twon childern:
if ($(currentComboBox.firsChild).text().trim() === "") { //If the first one is the empty option caption pick the second child
currentComboBox.selectedIndex = 1; //As it is the only choice there is
}
}
}
问题是它在选择框中显示正确的值,但它不会填充绑定的变量。 我也试图替换这一行:
currentComboBox.selectedIndex = 0
通过
currentComboBox[0].click()
但它没有帮助......
你的帮助会很有意义:)