2012-01-16 3 views
1

Я хочу предупредить пользователя, если они не проверили флажок, и вернуться к форме После того, как они проверили хотя бы один флажок, перейдите на следующую страницу Как это сделать ?checkbox не проверяется

<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; 
          } 


          }` 
+0

Флажок всегда будет иметь значение в JS, то вы его генерируете. Вы хотите проверить атрибут '.checked' checkboxe, который является true/false. –

+0

, если checkbox.value = ";;;" = false? –

+0

№. 'if (checkbox.checked == false) {... это не проверено ...}'. –

ответ

0

С JQuery

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

? –

+0

где я должен поставить эту функцию? в CheckBoxStatus()? –

+0

jQuery не нужен, если это все, что он использует. – Jivings

0

Этот HTML является немного беспорядок. Несколько вещей ...

  1. Избавьтесь от тега <td>, содержащего кнопку. Не похоже, что у него есть цель.
  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; 
        } 
    } 
    

РЕДАКТИРОВАТЬ; забыли предупреждение

+0

Где я должен назвать эту функцию? на кнопке или в форме?

+0

Либо на форме, либо на кнопке отправки. У вас уже есть 'onsubmit' в форме, поэтому, возможно, их объединить? – Jivings

+0

, когда он возвращает false, почему он остается на следующей странице? –

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

Вы можете сделать что-то вроде этого:

<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> 
Смежные вопросы