簡體   English   中英

Knockout.js-未設置選擇值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM