【发布时间】:2011-08-14 20:06:16
【问题描述】:
我正在尝试编写一个可以与 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> 或单选单选集之一.没有多项选择。我将在我希望它应用到的每个字段的 jquery 验证配置中将此函数作为参数传递给 required。被评估的“其他”字段的name 属性对其可用。
这是我目前的演示,有点丑但有注释:http://jsfiddle.net/uUdX2/3/
我使用is(':checked') 和:checked 选择器尝试了很多不同的方法,但都失败了。我从演示中删除了它们,因为它们不起作用。
我需要什么才能使用无线电和文本类型或选择输入,而不知道它将是哪种输入?
【问题讨论】:
标签: javascript jquery forms jquery-validate