【问题标题】:how to see a checkbox is not checked如何查看未选中的复选框
【发布时间】:2012-02-11 02:46:17
【问题描述】:

如果用户没有选中任何复选框,我想提醒他们,然后返回表单 在他们至少选中一个复选框后,进入下一页 我该怎么做?

<input type="checkbox" name="pay[]"  value="
    <?php 
    echo $DateArr[$record_count].";";
    echo $invoiceArr[$record_count].";";
    echo $TotalArr[$record_count].";";
    echo $amount_dueArr[$record_count];
    ?>
    " onClick="checkTotal()"/>

<td ALIGN="right" ><input type="submit" name="submit" value="Continue" onMouseOver="CheckBoxStatus()"></td>

javascript:

function CheckBoxStatus()
                      {

                        var checkbox_status = document.getElementsByName("pay[]").value;                            
                            if (checkbox_status = ";;;")
                            {
                               alert("Please select at least one to proceed!");
                               return false;
                            }
                            else
                            {
                              alert("Continue!");
                              return true;
                            }


                      }

如果用户没有选中,至少一个复选框,提醒消息并返回表单

然后

<form name="payform"  method="POST" action="payment.php"  onSubmit=" CheckBoxStatus()">

如果用户没有选中任何复选框,我怎样才能留在表单中?

可能是这样的:

function CheckBoxStatus()
                          {
                                if (document.getElementsByName("pay[]").checked == true) 
                                {
                                    document.forms["payform"].submit(); 
                                    return true;
                                }
                                else
                                {
                                    alert("Please select at least one invoice to proceed!");
                                   document.forms["payform"].reset();   
                                   return false;

                                }
                          }

我可以这样做吗: `

function CheckBoxStatus()
                          {
                            var status=$("pay[]").attr('checked');

                            if (status=true)
                            {
                             //if(document.getElementsByName("pay[]").checked) {
                                return true;
                            }
                            else {
                                alert("Please select at least one to proceed!");
                                return false;
                            }


                          }`

【问题讨论】:

  • 复选框在 JS 中总是有一个值,就像你生成它的方式一样。您要检查复选框的.checked 属性,即真/假。
  • 如果 checkbox.value = ";;;" =假?
  • 没有。 if (checkbox.checked == false) { ... it's not checked ...}.
  • if(document.getElementsByName("pay[]").checked == false) { return true; } else { alert("Please select at least one to proceed!"); return false; }
  • getElementsByName 返回一个匹配节点的数组......你真的需要阅读 DOM 操作......

标签: php html forms function checkbox


【解决方案1】:

使用 jQuery

var $checked = $("input:checked");
if($checked.length == 0) {
     alert("Please select at least one to proceed!");
}

【讨论】:

  • 我应该把那个函数放在哪里?在 CheckBoxStatus() ?
  • 如果这就是他使用它的全部,那么就不需要 jQuery。
  • 仍然继续进入下一页,即使没有选中复选框...??
  • 我怎样才能让它留在表单中,直到至少有一个复选框被选中?
【解决方案2】:

那个 HTML 有点乱。有几件事...

  1. 去掉包含按钮的&lt;td&gt; 标签。它看起来没有目的。
  2. 要调用 JavaScript,您需要使用 onsubmit 而不是 onMouseOver
  3. 要检查复选框是否被选中,请将您的功能更改为以下内容。

    function checkBoxStatus { 
        if(document.getElementsByName("pay[]").checked) {
            return true;
        }
        else {
            alert("Please select at least one to proceed!");
            return false;
        }
    }
    

编辑;忘记提醒

【讨论】:

  • 我应该在哪里调用这个函数?在按钮上还是在表单上?
  • 在表单或提交按钮上。您已经在表单上有一个onsubmit,所以也许将它们合并起来?
  • 当它返回false时,为什么还继续进入下一页??
  • 如果用户没有选中任何复选框,我怎样才能留在同一页面?
  • 如果我点击其中一个复选框,它仍然会给我“请至少选择一个以继续!”
【解决方案3】:
  1. 检查是否包含 jquery。 :|
  2. 试试这个:

    <input id="ipay" type="checkbox" name="pay[]"  value="
    <?php 
    echo $DateArr[$record_count].";";
    echo $invoiceArr[$record_count].";";
    echo $TotalArr[$record_count].";";
    echo $amount_dueArr[$record_count];
    ?>"
    />
    
    <td ALIGN="right" ><input type="submit" name="submit" value="Continue"></td>
    <form id="pform" name="payform"  method="POST" action="payment.php">
    

Javascript:

    $(document).ready(function() {
            $('#pform').submit(function(e) {
                    var paycheck = $('#ipay').attr('checked');
                    if(paycheck != true or paycheck != 'checked') {
                            alert('Please check at least one option.');
                            e.preventDefault();
                    }
            });
    });

【讨论】:

    【解决方案4】:

    你可以这样做:

    <html>
        <head>
            <title>Verify Checkbox</title>
            <script type="text/javascript">
                function verifyCheckboxSelected(form) {
                    var theForm = document.forms[form];
                    var valid = false;
    
                    for( var i=0; i < theForm.length; i++ ) { 
                        if(theForm.elements[i].checked) {
                            valid = true;
                        } 
                    }
    
                    if (!valid) {
                        alert('You must select at least one checkbox')
                        return false;
                    }
                }
            </script>
        </head>
        <body>
            <form name="myForm" onSubmit="return verifyCheckboxSelected(this.name)">
                <input type="checkbox" name="myCheckBoxes[]"/>Checkbox A</br>
                <input type="checkbox" name="myCheckBoxes[]"/>Checkbox B</br>
                <input type="checkbox" name="myCheckBoxes[]"/>Checkbox C</br>
                <input type="submit" value="submit" />
            </form>
        </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2011-01-17
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      相关资源
      最近更新 更多