微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 获取输入值而不管类型的通用方法

我正在尝试编写一个可以与 jquery验证插件一起使用的泛型函数,该插件将根据另一个字段的值生成所需的字段.这就是我想要发生的事情:

>如果Field 1的值在指定的值数组中(当前使用“No”,“n / a”和“0”进行测试),或者为空,则不执行任何操作.否则,需要使用Field 2.

获得Field 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;
}

这适用于我需要的所有东西,除了无线电,因为它似乎读取第一个无线电的值,无论它是否被检查.

将触发“必需”的字段将是各种文本输入(文本,URL,电子邮件等),< select>或单个选择的无线电集合之一.没有多重选择.我将把这个函数作为参数传递给我的jquery验证配置中我需要它应用的每个字段.将对其进行评估的“其他”字段的name属性.

到目前为止,这是我的演示,有点难看但有笔记:http://jsfiddle.net/uUdX2/3/

我尝试了一些使用is(‘:checked’)和:checked选择器的不同方法,但它们都失败了.我从演示中删除了它们,因为它们不起作用.

如何使用无线电和文本类型或选择输入,而不知道它将是哪种输入,我需要什么?

解决方法

试试这个
var value = $('[name="option"]');
var type = value.attr("type");

if(type && type.toLowerCase() == 'radio')
  value = value.filter(":checked").val();
else
  value = value.val();

工作demo

原文地址:https://www.jb51.cc/js/150437.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐