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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/js/150437.html

猜你在找的JavaScript相关文章