2012-12-12 2 views
0

После нажатия кнопки «Удалить», как отобразить предупреждение, если ни один из флажков не выбран. Мой 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> 
+1

Что JQuery должен сделать с этим вопросом? Кроме того, можете ли вы разместить HTML-код для своих флажков. В вашем javascript вы ищете их в 'form', но их нет в HTML-форме. –

ответ

1

Было бы более логично было бы искать для проверяемых элементов, а когда первый один найден: отправить форму и выйти. Если ни один из них не установлен, появится предупреждение. Вы не указали флажок HTML, поэтому я предполагаю, что у вас есть ячейка checkbox с именем delAdlist[].

Plain 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

+0

Дорогой MrCode, я добавил свой HTML. 'delAdlist []' из файла DeleteAdmin.java ... 'String [] delAdlist = req.getParameterValues ​​(« delAdlist »);' – user1661740

+0

В вашей Java вы даете ему имя 'delAdList' здесь:' <тип ввода = \ "checkbox \" name = \ "delAdlist \" ', в идеале это должен быть массив, поэтому' delAdList [] '. – MrCode

0

Вы должны проверить в этом формате

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(); 
} 
0
<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(); 
}