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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...