我正在尝试用下拉菜单替换现有网站中的文本框,其中选项很少。一切工作正常,期望当人点击寄存器时该值没有被存储/注册。但使用文本框效果很好。请参阅下面我为下拉列表编写的代码:
</label>
<label class="label-4 lcol1" for="d_name-suffix"><small>(optional)</small>
<select id="d_name-suffix" style="width:auto; height:auto" data-bind="options: $root.nameSuffix, value: nameSuffix, optionsText: 'options1'" />
</label>
JS:
self.nameSuffix = ko.observable([
{ options1: "Mr" },
{ options1: "Mrs" },
{ options1: "Miss" }
]).extend({ pattern: NineElevenRegistries.inputValidation.name });
这是为文本框实现的代码:
self.nameSuffix = ko.observable().extend({
maxLength: NineElevenRegistries.inputValidation.nameSuffixMaxLength,
pattern: NineElevenRegistries.inputValidation.name
});
最佳答案
您需要使用数组来存储值并将值存储在可观察对象中。
self.nameSuffixes = ko.observableArray([
{ options1: "Mr" },
{ options1: "Mrs" },
{ options1: "Miss" }
]);
self.nameSuffix = ko.observable();
在你看来 -
<select id="d_name-suffix" style="width:auto; height:auto" data-bind="options: $root.nameSuffixes, value: nameSuffix, optionsText: 'options1'" />
关于javascript - 使用 knockout 实现下拉菜单时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24681531/