如何使用JQuery在表单中获取所选单选按钮的值

时间:2012-03-01 05:27:12

标签: jquery forms radio-button

我已经看过jquery文档,stackoverflow和其他论坛,但这似乎不起作用。

我在表单中有一个单选按钮,我想获得选择的值。

如果我从表单中删除单选按钮,我可以通过

获取它
var first_val = $('input:radio[name=Question0]:checked').val();

但是,如果我将其添加到表单名称=生活方式

任何这些组合都不起作用

我有一个名为生活方式的表格 我已尝试过Chrome中的所有选项,但它似乎无法正常工作

选项1

var first_val = $('#lifestyle input:radio[name=Question0]:checked').val();
alert($('#lifestyle input:radio[name=Question0]:checked').val());

选项2

var first_val = $('form input:radio[name=Question0]:checked').val(); 
alert($('form input:radio[name=Question0]:checked').val());

选项3

var first_val = $('#lifestyle input:radio[name=Question0]:checked', '#lifestyle').val();
alert($('#lifestyle input:radio[name=Question0]:checked','#lifestyle').val());

等等..

我没有得到价值,警报说未定义。

3 个答案:

答案 0 :(得分:2)

“如果我从表单中删除单选按钮,我可以通过”

来获取它
var first_val = $('input:radio[name=Question0]:checked').val();

无论输入是否属于某个表单,该选择器都应该有效。如果有多个表单,每个表单都有相同名称的输入,则只需要指定表单。

我希望这可行:

$('form[name="lifestyle"] input:radio[name=Question0]:checked').val()

选项1不起作用,因为您的表单具有名称“生活方式”,但您尝试将 id 选择器格式与“#”一起使用。所以:

//use
"form[name=lifestyle]"
// not
"#lifestyle"

假设您在页面上只有一个表单元素,选项2对我来说很好。

选项3具有相同的问题,“#”选择id而不是名称,但也使用$("selector", context)语法,你应该提供“一个DOM元素,文档或jQuery用作上下文” (正如here所解释的那样,不是一个字符串,但无论如何提供一个元素作为上下文,然后在其自身内寻找该元素是没有意义的。

答案 1 :(得分:0)

  

但是,如果我将其添加到表单名称=生活方式

更改选择器

var first_val = $("form[name='lifestyle']").find(":radio[name='Question0']:checked").val();
alert(first_val);

答案 2 :(得分:0)

检查以下小提琴:

http://jsfiddle.net/NWEjg/2/

希望它有所帮助。