2012-04-19 81 views
0

我的地址数据有问题。因此,要么输入一个新的地址(所有的字段都是输入字段,除了性别,选择,它是一个单选按钮),或者你从给定列表中选择一个地址,所以如果你想从列表中选择一个地址(使用单选按钮选择 - >input[@name='select_address']),所有的inputfields不需要了......jquery validate-plugin required(dependency-expression)

rules: { 
delivery_gender: 
     {required:"input[@name='select_address'].not(':checked')"} 

等等领域gender只应在输入选择场(input[@name='select_address)不作检查。我在做什么错了需要?

我我也尝试过另一种方式:

$('input:radio[name=select_address]').click(function() { 
    delivery_gender.rules('remove'); 

但它也不起作用。有任何想法吗?

该问题只出现与单选按钮,因为输入字段我只是删除了类:

$('input.delivery').removeClass('required error'); 
+0

对于'rules:{myfield:{required:',唯一可接受的参数是'true'或'false'。这并不完全清楚你想要做什么。 – Sparky 2012-04-19 14:17:10

+0

这句话是乱码,需要修正......“因此,要么你输入一个新的地址,要么你选择一个已经输入的地址之前”_ – Sparky 2012-04-19 14:22:02

+0

@ Sparky672:我不这么认为,或者文档是错误的:http://docs.jquery.com/Plugins/Validation/Methods/required,检查需要的章节(依赖表达式),验证应该像这样工作:你输入一个新地址,但也有以前输入的地址listet,所以如果你选择其中的一个,所有的输入域都不需要验证。我用removeClass解决了textinputs,但它不适用于生成select-radiobuttons ... – sinini 2012-04-19 14:31:20

回答

1

尝试使用dependancy callback

required: function(element) { 
    return $("input[name=select_adddress]:checked").val() == "custom"; 
} 

此检查的价值组select_address中的已检查单选按钮等于自定义 - 如果是则需要性别字段。

working example here - 在此示例中,您需要选择custom以使gender为必填字段。

+0

这几乎是我所需要的,但它应该是必需的,如果select_address不检查...我害怕我的逻辑有问题:http://jsfiddle.net/6YMX4/9/ – sinini 2012-04-19 16:09:47

+0

@sinini它的一个收音机组 - 检查是否会使它被检查...在我的例子中,你检查使用'.val()'检查哪一个被检查 - 你能否在你的问题中包含你的HTML输出 – ManseUK 2012-04-19 16:11:17

+0

你见过修改过的代码吗?jsfiddle.net/6YMX4/9?如果没有选择任何单选按钮,应该需要性别输入,所以我需要类似.is(“:not(:checked)”),但它不工作......非常感谢您的帮助 – sinini 2012-04-19 16:20:35