2009-11-30 72 views
1

我有一个带有动态创建的表单元素的表单。返回jquery的输入类型

我需要获取每个元素的值,并发送ajax请求以确保数据正常(简单部分)。我可以很容易地获得每个元素的值,但问题出在单选按钮上。例如:

<input type = 'radio' class = 'form_element' value = '1'> 
<input type = 'radio' class = 'form_element' value = '1'> 
<input type = 'radio' class = 'form_element' value = '1'> 

,如果我这样做......

$('.form_element').each(function(){ 
    alert($(this).val()); 
}); 

它将打印所有单选按钮的值,如果不考虑检查与否。

我需要它只返回检查的值。

那么,有没有办法从jQuery返回一个输入元素的类型?

回答

1

使用$('.form_element:checked')仅获取选中的单选按钮的值。

0

尝试:

$('.form_element:checked').each(function(){ 
    alert($(this).val()); 
}); 
1

除了salgiza提到,你也可以使用Attribute filters执行更通用的过滤,包括您的要求。 ()函数(){alert($(this).val()); });}};

0

这个例子可能可以改善,但应该做的伎俩。

$('.form_element').each(function(){ 
    if ($(this).attr("type") == "radio") { 
     if ($(this).attr("checked") == true) { 
      alert($(this).val()); 
     } 
    } else { 
     alert($(this).val()); 
    } 
}); 

我测试了它使用下面的HTML,以判断它是工作(你的例子对每个无线选项的值相同):

<input type='radio' name="a" class="form_element" value="1"> 
<input type='radio' name="a" class="form_element" value="2"> 
<input type='radio' name="a" class="form_element" value="3"> 
1

这你想要做什么。在循环内部,它离开了不需要的jQuery装箱。处理收音机,复选框,文本,textarea,选择一个。不考虑选择倍数,文件,...

$('.form_element').each(function() { 
    switch(this.type) { 
    case 'radio': 
    case 'checkbox': if (this.checked) alert(this.value); break; 
    case 'text': 
    case 'textarea': 
    case 'select-one': alert(this.value); break; 
    default: alert("unhandled type: "+this.type); 
    } 
});