2011-05-04 43 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')

相关问题