我正在尝试编写一个可以与 jquery 验证插件一起使用的通用函数,该函数将根据另一个字段的值使一个字段成为必需的。这就是我想要发生的事情:
- 如果字段 1 的值位于指定的值数组中(当前使用“No”、“n/a”和“0”进行测试),或者为空,则不执行任何操作。否则,将字段 2 设为必填。
获取字段 1 的值是问题所在。我用文本类型或<select>
输入,但我试图让它与收音机一起工作但遇到困难。这是我的代码的摘录:
var value = $('[name="option"]').val(),
empty = ['no', '', 'n/a', '0'];
// If the input is not "empty", make the additional field required
if ($.inArray(value.toLowerCase(), empty) < 0) { // returns -1 if not found
required = true;
} else {
required = false;
}
这适用于我需要的一切,除了无线电之外,因为它似乎读取第一个无线电的值,无论它是否被检查。
将触发“必填”的字段将是各种文本输入之一(text
, url
, email
等),一个<select>
,或一组单选收音机。没有多项选择。我将把这个函数作为参数传递给required
在我希望它适用的每个字段的 jquery 验证配置中。这name
被评估的“其他”字段的属性将对其可用。
到目前为止,这是我的演示,有点丑陋,但有注释:http://jsfiddle.net/uUdX2/3/ http://jsfiddle.net/uUdX2/3/
我尝试了很多不同的方法is(':checked')
和:checked
选择器,但他们都失败了。我将它们从演示中删除了,因为它们不起作用。
我需要什么才能让它与无线电一起工作and文本类型或选择输入,而不知道它将是哪种输入?