Javascript and only one Checkbox - undefined

后端 未结 8 1191
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-18 11:11
for (i = 0; i < document.checks.user.length; i++) //for all check boxes
{
    if (document.checks.user[i].checked == true )
    {
        document.checks.submit()         


        
相关标签:
8条回答
  • 2021-01-18 11:47

    Your question is somewhat confusing, since your javascript would obviously have to be inside a function called 'sub_delete' to be any use... someone with the mighty power to edit questions might improve the question by making that clearer...

    So the first issue you have to get around is the fact that for single checkbox, with a given name 'user', is not an array, and therefore has no defined length, but also if you try and access it as an array.. things get confused.. a full rewrite of your javascript function might look like this:

        function sub_delete{
            if (typeof document.checks.user.length === 'undefined') {
       /*then there is just one checkbox with the name 'user' no array*/
            if (document.checks.user.checked == true )
                                {
                                    document.checks.submit();
                                    return 0;
                                }   
        }else{
      /*then there is several checkboxs with the name 'user' making an array*/
            for(var i = 0, max = document.checks.user.length; i < max; i++){
                if (document.checks.user[i].checked == true )
                                {
                                    document.checks.submit();
                                    return 0;
                                }
    
            }
        }
        }//sub_delete end
    

    HTH, -FT

    0 讨论(0)
  • 2021-01-18 11:48
    if(document.checks.user[0]) {
      //it's an array
    }
    else {
      //it's a single element
    }
    
    0 讨论(0)
  • 2021-01-18 11:51

    It's very simple, just create a hidden input tag with the name same as the existing checkbox input tag.

    For example:

    <input type="checkbox" name="user" value="Bike" ID="Checkbox1">
    <input type="hidden" name="user" value=""/>
    
    0 讨论(0)
  • 2021-01-18 11:53
    if (document.getElementById('Checkbox1').checked) { /* do something */ }
    

    if you want to loop a bunch of checkboxes, you could loop the input fields of your form, like:

    var formNodes  = document.checks.getElementsByTagName('input');
    for (var i=0;i<formNodes.length;i++) {
       /* do something with the name/value/id or checked-state of formNodes[i] */
    }
    
    0 讨论(0)
  • 2021-01-18 11:54

    I'd probably iterate across document.checks.elements, looking for .type == 'checkbox'.

    0 讨论(0)
  • 2021-01-18 11:57

    I too face the same proble with total of 5 checkboxes out of which 4 are disabled and 1 is enabled. Now the checkboxId.length is undefined, so the only option I could think of is if(checkboxId.length ==undefined ){checkboxId.checked=true & submith the form}.

    0 讨论(0)
提交回复
热议问题