2013-01-24 21 views
0

我們擁有的表單,這裏是無線電代碼是如何在此設立的PHP形式:的Javascript:單選按鈕組生效

<input type="radio" name="2074" id="2074" value="Yes" class="valuetext" >Yes 
<input type="radio" name="2074" id="2074" value="No" class="valuetext" >No 

我工作的一些自定義的驗證碼是罰款文本場,但只是擊中單選按鈕一個障礙,所以我敢肯定,這將是對的複選框

所以這裏的問題是,驗證碼,

function blank(field) { 
    if ((field.type == "text" || field.type == "textarea") && (field.value == " " || field.value == "")) 
    { 
     return true; 
    } 
    else if ((field.type ="radio" || field.type == "checkbox") && (!(field.checked || field.selected || field.selectedIndex > -1))) 
    { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

,但是當涉及到收音機butto ns,它只檢查它所運行的第一個單選按鈕。所以例如,如果我運行驗證,並且集合中的無線電都沒有被檢查,它就可以工作,給我提供我需要的錯誤信息,但那只是因爲它檢查了第一個按鈕,它是空的。

如果我選擇「沒有」,無線電的第二個選項,它不能正常工作,給我一個錯誤信息時,它不應該

如果我選擇「」首選項的廣播,它按預期工作。

如何獲取JavaScript以抓取組中的所有無線電,檢查該組中是否有任何無線電被檢查?

預先感謝您。

功能可收集需要進行檢驗領域: * 此外,這是上面的JSON腳本提供的數據字段列表 *

var field = [], blankFields = [], 
     listText = [], listItem = [], fieldId = [], label = []; 

function checkRequired(fieldList) { 
    for (var i = 0; i < fieldList.length; i++) 
    { 
     listText = fieldList[i]; 
     listText = listText.substring(1, listText.length - 1); 
     listItem = listText.split("||"); 
     fieldId = listItem[0]; 
     label = listItem[1]; 
     field = document.getElementById(fieldId); 

     if (visible(field) && blank(field)){ 
      blankFields.push(label); 
     } 
    } 
    //return blankFields; 
    if (blankFields.length > 0) { 
     displayError(blankFields); 
    } 
} 
+1

我不認爲你應該有相同的ID的多個元素 – Albinoswordfish

+0

沒有你真的不應該,但這是我們繼承的遺留應用程序,並且尚未修改。 – user1176783

回答

0

我決定在一定的jQuery這使得生活噸混合更容易:

else if (field.type=="radio") 
       { 
       var radiocheck = $('input[type="radio"][name="' + field.name + '"]:checked').size() > 0; 
       if (radiocheck == false){ 
        return true; 
0

您可以使用document.getElementsByName("2074"),然後遍歷通過查看是否有任何檢查。

相關問題: In JavaScript, how can I get all radio buttons in the page with a given name?

+0

我無法使用特定的名稱,因爲多個客戶端使用該應用程序,所以ID和名稱將有所不同。在此之上有一個函數收集所有需要檢查的字段。不知道它是否會有所幫助,但我會在上面發表。 – user1176783

+0

好,如果你有所有的字段存儲在一個數組中,看起來你有,爲什麼你不只是遍歷它們並檢查元素是否被檢查?你可以通過檢查長度來檢查你正在處理的列表,這樣當你不需要的時候,你就不會浪費時間來查看每一個列表。 – aug