2011-05-04 48 views
0
function checkSelect(field_id) 
{ 
    var oParent = document.getElementById(field_id); 
    alert(oParent); 

    var aElements = oParent.getElementsByTagName('input'); 
    alert(aElements); 

    var c_value = ""; 
    for (var i = 0; i < aElements.length; i++) 
    { 
     if (aElements[i].type == 'checkbox') 
     { 
      if(aElements[i].checked) 
      { 
       c_value=aElements[i].checked.value; 
       alert(c_value); 
      } 
     } 
    } 

    //alert(c_value); 
} 

我已經在這裏搜索的代碼中傳遞。請讓我知道我做錯了什麼。我想通過函數傳遞fieldname或fieldid來獲取複選框的值。由於複選框的名稱會導致錯誤,所以Javascript沒有獲得「fieldid」的值。如果我給硬編碼值,它就像下面給出的函數一樣工作。收到使用ID或名稱複選框值通過功能

function checkSelect() 
{ 
    var bool=false; 
    var field=document.countryManagementForm.country_ids; 

    var length=1; 
    if(field.length==null) 
    { 
    //alert("yes"); 
    } 
    else 
    { 
    ///alert("No"); 
    length=field.length; 
    } 




    for (i = 0; i < length; i++) 
    { 
     if(field[i].checked == true) 
     { 
      bool=true; 
     } 
    } 

    if(!bool) 
    { 
     alert("Please select atleast one country"); 
     return false; 
    } 
    else 
    { 

     return true; 


    } 

} 
+0

據我所看到的,代碼至少是語法正確。這取決於你的HTML。您是否通過了該複選框之一的ID?如果是這樣,該功能將不起作用。 – 2011-05-04 08:28:18

回答

0

我會推薦使用JavaScript框架。這是一件輕而易舉的事,做你想做的事:

對於ID:

$('#id').val(); 

對於名稱:

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

JqueryDocs

0

變化

c_value=aElements[i].checked.value; 

c_value=aElements[i].value; 

,並再次嘗試

0

貌似country_ids是你的複選框上輸入名稱。如果是這樣,你可以通過

var aElements = document.getElementsByName(field_id); 

替換該行

var aElements = oParent.getElementsByTagName('input'); 

,而忽略它上面的線。打電話給你的功能checkSelect('country_ids')

相關問題