2009-11-30 59 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); 
    } 
});