理想情况下,我希望在输入中添加三元运算符,以便在选择特定的运输承运人的情况下需要输入,而对于所有其他承运人则是可选的。这是我到目前为止尝试过的:
<input class="input-text" type="text" maxlength="60" name="shipper_number" attr="id: 'shipper_number_' + method.method_code + '_' + method.carrier_code" data-bind="value: checkoutConfig.quoteData.shipper_number,
required: method.carrier_title == 'DHL' ? 'required' : ''" /> //This is the one I tried and it didn't work
我尝试将必填字段添加到data-bind属性,但是没有用。我对淘汰赛知之甚少,所以我什至不知道自己是否在正确的轨道上。任何帮助表示赞赏。
答案 0 :(得分:1)
您可以使用 attr
绑定。如果method.carrier_title
是可观察的,则需要使用()
来获取值,然后将其与字符串进行比较
const viewModel = {
title: ko.observable('foo'),
title2: ko.observable('bar')
}
ko.applyBindings(viewModel)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<form>
Input 1: <input type="text" data-bind='attr:{ required: title() === "foo" }'>
Input 2: <input type="text" data-bind='attr:{ required: title2() === "notbar"}'>
<input type="submit">
</form>