[英]Knockout.js - select value not set
我正在使用淘汰表.js,並且沒有設置空選項(四個)的值:
<select data-bind="value: item.widgetValue, attr: {id: item.widgetName, name: item.widgetName}, options: item.options, optionsText: ‘label’, optionsValue: ‘value’” id=”fld-“ name=”fld0”>
<option value=”one”>One</option>
<option value=”two”>Two</option>
<option value=”three”>Three</option>
<option value>Four</option>
...
</select>
這就產生了一個問題:當您選擇任何選項並嘗試選擇“四”時,它會選擇“一個”; 它將在您第二次選擇它時僅選擇4。
我嘗試過修改敲除數據綁定來解決此問題:
value: $.trim(item.widgetValue)
這使您可以立即選擇“四”,但是在提交“四”后提交表單后,會錯誤地顯示“一”。
關於什么可能導致此問題或如何解決的任何想法?
如果在select元素上使用選項綁定,則不應手動設置選項。 如果這些是通過綁定動態創建的(即您實際上是在使用source.options作為源),則檢查將select元素綁定到的對象-
item.options可能看起來像這樣(缺少值或不像其他選項那樣)-
item.options = [
{ label: 'someLabel1', value: 'someValue1' },
{ label: 'someLabel2', value: 'someValue2' },
{ label: 'someLabel3', 'someValue3' }
];
但應該是更統一的對象,例如這樣(定義明確的模型)-
function optionModel(label, value) {
var self = this;
self.label = ko.observable(label);
self.value = ko.observable(value);
}
item.options = [
new optionModel('someLabel1', 'someValue1'),
new optionModel('someLabel2', 'someValue2'),
new optionModel('someLabel3', 'someValue3')
];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.