簡體   English   中英

如果未選中復選框,則顯示alert()

[英]Show alert() if no checkbox is selected

單擊按鈕“刪除”后,如果未選中任何復選框,則如何顯示警報。 我的HTML表單

<form name="Delete" method="post" action="DeleteAdministrator">
                <table width="800px" cellpadding="5" style="color:black; border-top:1px solid #ccc;" border="0">
                </table>
                    <div id="container">
                    <div id="demo_jui">
                    <table id="adminList" class="display" cellpadding="0" cellspacing="0" border="0" style="font-size:12px;" >
                    <thead id="headed">
                    <tr>
                        <th  align="center" title="Select">Select</th>
                        <th align="center" title="Email Address">Email Address</th> 
                        </tr>
                    </thead>
                    <tbody></tbody>
                    </table>
                    </div>
                    </div>
                    <table id="footed">
                        <tr>
                            <td colspan="2">
                                <a href="#"><img src="images/Delete.png" style="border:none;" onClick="javascript:Go()"
                                onmouseover="this.src='images/Delete_Hover.png'" onmouseout="this.src='images/Delete.png'"/></a>
                                &nbsp;&nbsp;&nbsp;
                                <a href="#"><img src="images/Reset.png" style="border:none;" onClick="javascript:clearForm()"
                                onmouseover="this.src='images/Reset_Hover.png'" onmouseout="this.src='images/Reset.png'"/></a>
                            </td>
                        </tr>
                    </table>
                </form>
</body>
</html>

復選框值將在表中檢索。 當我對其進行測試時,如果選中或未選中復選框,它仍然會提示“請選擇刪除管理員”

在函數Go() ,驗證document.Delete.delAdlist[i].checked是否正確? 謝謝

<script language="JavaScript">                      
    var running = 0;
    function Go() {
        var f = document.forms[0];
        for (i = 0; i < document.Delete.delAdlist.length) {
            if (!document.Delete.delAdlist[i].checked) {
                alert("Please select to delete admin.");
                return false;
            }
            else {
                f.submit();
                return true;
            }
        }  
        f.submit();
        running++;
    }                               
</script>

查找已檢查的項目以及找到第一個項目將更合乎邏輯:提交表單並退出。 如果未選中任何一項,則顯示警報。 您尚未顯示復選框HTML,所以我假設您有一個名為delAdlist[]的復選框數組。

純Javascript解決方案

function Go() {
    var f = document.forms["Delete"];

    for (i = 0; i < f.elements["delAdlist[]"].length; i++) {
       if (f.elements["delAdlist[]"][i].checked) {
            f.submit();
            return true;
        }
    }  

    alert("Please select at least one to delete");
}

jQuery解決方案

function Go() {
    if($('form[name=Delete] input[name=delAdlist\\[\\]]:checked').length > 0)
    {
        $('form[name=Delete]').submit();
    }
    else
    {
        alert("Please select at least one to delete");
    }
}

注意:如果您的復選框是數組,則上面的代碼將起作用。 如果您的復選框不是數組,並且都命名為delAdlist (不帶方括號),則從第一個解決方案中刪除[] ,然后在第二個解決方案中將選擇器更改為form[name=Delete] input[name=delAdlist]:checked

您應該以這種格式檢查

var notChecked=0;
for (i = 0; i < document.Delete.delAdlist.length) 
                {
                    if(!document.Delete.delAdlist[i].checked)
                         notChecked=1;

                }  

if(notChecked==1) {
      alert("Please select to delete admin.");
      return false;
}
else {
     f.submit();
}
<script language="JavaScript">                      
    var running = 0;
    function Go() {
    var f = document.forms[0];
   if( $("input[type='checkbox']:checked").length < 1)
        alert("Please select to delete admin.");
   else
     f.submit();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM