我有一個輸入,<select>
的<option>
s,並根據選擇哪一個,我希望有更多的輸入字段出現。這是它在js中的樣子:驗證觸發其他東西的下拉輸入
protectionInput: ko.computed({
read: function() {
return "";
},
write: function (value) {
if (value == "Primary") {
viewModel.enhancementVisible(true);
viewModel.individualVisible(false);
} else if(value == "IP14" || value == "IP16") {
viewModel.enhancementVisible(false);
viewModel.individualVisible(true);
} else {
viewModel.enhancementVisible(false);
viewModel.individualVisible(false);
}
},
})
問題是,我也需要這是一個必填字段,以便選擇其中一個選項。對於我的其他投入都得到了這個(使用KO驗證),它的工作原理:
someInput: ko.observable().extend({
required: true,
}),
但是,當我把它添加到上面計算一個總是甚至在選擇一個選項後評估爲無效。
任何想法?如果我以愚蠢的方式完成這項工作,很樂意進行重組。預先感謝任何幫助!
PS,這是標記的樣子:
<div class="form">
<label>Type of protection</label>
<select data-bind="value:protectionInput" required>
<option value="" disabled selected hidden>Please select an option</option>
<option>Primary</option>
<option>FP12</option>
<option>FP14</option>
<option>FP16</option>
<option>IP14</option>
<option>IP16</option>
</select>
<label>Enhancement factor</label>
</div>
<div class="form" data-bind="visible: enhancementVisible">
<input type="number" data-bind="value:enhancementInput" required min="0" max="100" />
</div>
<div class="form" data-bind="visible: individualVisible">
<label>Individual factor</label>
<input type="number" data-bind="value:individualInput" required />
</div>
首先我猜你在哪裏設置你的變量true/false在計算的寫入部分你打算設置___可見(true/false)而不是___ Input(true/false)? –
是的 - 精確地調整了變量名稱在這裏發佈,並清理了一點點的CSS,所以忘了改變它。 (現在已經修復了任何未來的訪問者,並試圖瞭解此代碼) – p44v9n