我正在尝试编写一个可以与jquery验证插件一起使用的泛型函数,该插件将根据另一个字段的值生成所需的字段。这就是我想要发生的事情:
获取字段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
选择器的一些不同方法,但它们都失败了。我从演示中删除了它们,因为它们不起作用。
我需要使用无线电和文本类型或选择输入,而不知道它将是哪种输入?
答案 0 :(得分:8)
试试这个
var value = $('[name="option"]');
var type = value.attr("type");
if(type && type.toLowerCase() == 'radio')
value = value.filter(":checked").val();
else
value = value.val();
工作demo
答案 1 :(得分:1)
这样的事情:
var value = $('[type="radio"][name="option"]:checked, [type!="radio"][name="option"]', form).val() || '0'
与Shankar相似但在选择器中完全相同。
http://jsfiddle.net/infernalbadger/uUdX2/8/
当没有选择时,它不起作用。当发生这种情况时,不确定你想要它做什么?