带剑道的KO JS,多条件可见

时间:2019-07-05 12:17:09

标签: html knockout.js kendo-ui

我试图显示“金额不得少于1”。如果用户输入数据并且数据小于1,则显示此消息。

<div class="form-group" data-bind="validationElement: Amount">
    <label for="Amount" data-bind="attr: {'for':'Amount'+$index()}">Amount</label>
    <input id="Amount" class="form-control" maxlength="13" type="text" placeholder="Required" required
    data-bind="attr: {id:'Amount'+$index()}, value: Amount, kendoNumericTextBox: { value: Amount, format: 'c2', spinners: false, step: 1, min:1, max:10000000000 }" />
    <span data-bind="visible: Amount() > 10000000000" style="color:#a94442;">Amount may not be greater than 10000000000.</span>
    <span data-bind="visible: Amount() && Amount() < 1" style="color:#a94442;">Amount may not be less than 1.</span>
</div>

如果我仅将其设置为visible: Amount() < 1,则它将始终显示,因为我认为空白文本框被认为小于一个。如果我将其更改为visible: Amount(),则在用户按预期输入数据之前,将不会显示任何内容。我需要两个,因为它需要验证用户输入的数据,并且数据小于1。有什么线索吗?由于某种原因,它不喜欢我的&&运算符。

1 个答案:

答案 0 :(得分:0)

我明白了。显然,它不是没有触发零,所以我添加了|| Amount() === 0并解决了该问题。