1

我想要一个函数/代码,它将返回用户为其名称/id 传递给它的字段提交的值。该字段是文本框、文本区域、单选还是选择都无关紧要。例如,该字段可以是:

<input type='radio' name='a_21' value='test' id='a_21_0' />
<input type='radio' name='a_21' value='test2' id='a_21_1' />

或者

<textarea name="a_21" rows="30" cols="6"></textarea>

当我打电话时:

function getVal('a_21');

它应该返回选定的值。

我怎样才能做到这一点?将要:

document.myForm.field.value

也适用于文本区域、下拉菜单和收音机?

4

2 回答 2

7

问题是不同的小部件有不同的用途。例如,<select>具有多个可用选项、多个复选框甚至单个复选框(其值将只是“开”或“关”)的框不会有单个值,因此它们的行为与其他小部件不同是可以的.

但是如果你想要一个函数,你可以这样做:

function getVal(obj){
  if(obj.value){
    return obj.value;
  }

  if(obj.selectedIndex){
    return obj.options[obj.selectedIndex];
  }

  if(obj.checked){
    return obj.checked;
  }

 return null;
}
于 2009-04-26T20:34:45.380 回答
4

使用 jQuery,您可以执行以下操作:

$('[name="a_21"]').val();

这将为您提供名称为 a_21 的字段的值,无论字段类型如何。

注意:不需要引号,但由于复选框数组,我已经习惯了添加它们:

<input type="checkbox" name="ids[]" value="1" />
<input type="checkbox" name="ids[]" value="2" />

我认为安全比试图弄清楚为什么它不起作用要好。

于 2009-04-26T20:36:25.517 回答