0

我有这个片段:

<input type="checkbox" name="sal_cart" id="sal_cart">
<input type="text" name="sal_unit_price" id="sal_unit_price" class="required">

sal_unit_price 可以是数字或字符串,但始终是必需的(不能为空)。
到现在为止还挺好。
如果检查了 sal_cart,则 sal_unit_price 必须是数字(不再允许使用字符串)
根据jQuery Validation dependency-expression,我把这个:

$('#form1').validate({
    rules: {
        sal_unit_price: { number: '#sal_cart:checked' },
    },
    messages: {
        sal_unit_price: { number: 'Please fill in a number' },
    }
});

但它不起作用:即使未选中该复选框,它仍然说它需要一个数字
请,你能发现这有什么问题吗?

这是一个小提琴:http: //jsfiddle.net/cWD8j/

4

1 回答 1

1

您使用的语法仅适用于所需的规则,对于其他规则,您需要更长的语法,传入带有参数依赖属性的对象

更新的小提琴

$('#form1').validate({
    debug: true,
    rules: {
        sal_unit_price: { 
            number: {
                param : true,
                depends: '#sal_cart:checked'
            }
       },
    },
    messages: {
        sal_unit_price: { number: 'Please fill in a number' },
    }
});
于 2013-04-12T09:51:13.723 回答