我正在尝试用下拉菜单替换现有网站中的文本框,其中没有几个选项。一切正常,希望当人们点击注册时该值不会被存储/注册。但是使用文本框可以正常工作。请查看下面为下拉菜单制作的代码:

</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'" />

10-04 16:04