2011-03-17 57 views
0

我有5個checkboex。如果他們中的任何一個被檢查並提交到第二頁,我怎樣才能得到它們的價值。 這裏是我的html代碼。如何在傳輸第二頁時獲得複選框值?Javascript

<form action="test.php" method="post" onSubmit="return checkCheckBoxes(this);"> 
<input type="CHECKBOX" name="CHECKBOX_1" value="1">y 
<input type="CHECKBOX" name="CHECKBOX_2" value="2">o 
<input type="CHECKBOX" name="CHECKBOX_3" value="3">t 
<input type="SUBMIT" value="Submit!"> 
</form> 

這裏的javascrip代碼

<script type="text/javascript" language="javascript"> 

function checkCheckBoxes(theForm) { 
if (
theForm.CHECKBOX_1.checked == false && 
theForm.CHECKBOX_2.checked == false && 
theForm.CHECKBOX_3.checked == false) 
{ 
    alert ('Please make sure to check a checkboxe!'); 
    return false; 
} else {  
    return true; 
} 
} 


</script> 
+0

你期待任何回答之前請格式化你的代碼。 – 2011-03-17 10:16:46

+0

通常情況下,表單數據被髮送到服務器,服務器正在處理它。 – 2011-03-17 10:21:29

+0

以及試下面的代碼,我沒有測試過,如果它沒有工作,然後讓我知道。也請按照AwaisQarni的建議 – 2011-03-18 10:13:34

回答

0
<script type="text/javascript" language="javascript"> 

    function checkCheckBoxes(theForm) { 
     if(theForm.CHECKBOX_1.checked == false && 
      theForm.CHECKBOX_2.checked == false && 
      theForm.CHECKBOX_3.checked == false) 
     { 
      alert ('Please make sure to check a checkboxe!'); 
      return false; 
     } else {  
      var val=''; var arr = new Array(); 

      if(theForm.CHECKBOX_1.checked == true){ 
       val += theForm.CHECKBOX_1.value; arr.push(/*push val*/); 
      } 
      if(theForm.CHECKBOX_2.checked == true){ 
       val += theForm.CHECKBOX_2.value; 
      } 
      if(theForm.CHECKBOX_3.checked == true){ 
       val += theForm.CHECKBOX_3.value; 
      } 
      alert(val); //echo out array elements 
     } 
    } 


</script> 
<form action="test.php" method="post" onSubmit="return checkCheckBoxes(this);"> 
    <input type="CHECKBOX" name="CHECKBOX_1" value="1"/>y 
    <input type="CHECKBOX" name="CHECKBOX_2" value="2"/>o 
    <input type="CHECKBOX" name="CHECKBOX_3" value="3"/>t 
    <input type="SUBMIT" value="Submit!"> 
</form> 

[更新] ::

<?php 

for($_POST['CHECKBOX'] as $key=>$value) 
{ 
    if(isset($key)) 
    echo "var val[".++$count."] = '".$value."'"; 
} 

?> 
<script type="text/javascript"> 
    for(var i=0; i<val.length; i++) 
     alert(val[i]); 
</script> 
+0

如果選中了多個複選框,你將連接這些值。所有這些值也都具有CHECKBOX_1的值。 – detaylor 2011-03-17 10:32:45

+0

@SmirkinGherkin對不起,忘了粘貼時忘了編輯 – 2011-03-17 10:34:22

+0

@experimentX - 自己做。值將仍然連接。我檢查了CHECKBOX_1和CHECKBOX_2,然後val將是「12」 – detaylor 2011-03-17 10:38:07

1

親愛的你首先需要您的複選框的名稱更改爲任意陣列像這樣

 
<form action="test.php" method="post" onSubmit="return checkCheckBoxes(this);"> 
<input type="CHECKBOX" name="CHECKBOX[]" value="1">y 
<input type="CHECKBOX" name="CHECKBOX[]" value="2">o 
<input type="CHECKBOX" name="CHECKBOX[]" value="3">t 
<input type="SUBMIT" value="Submit!"> 
</form> 

在您的test.php只是遍歷複選框的整個陣列這樣

 
for($_POST['CHECKBOX'] as $key=>$value) 
{ 
    if(isset($key)) 
    echo('check box is checked and do some thing with '.$value); 
    else 
    echo('check box is not checked'); 
} 
+0

我的意思是,如果沒有複選框被選中,那麼警告框應該來了,如果複選框被選中,那麼我應該通過php $ _post []獲得測試頁面中的值。如果沒有選中複選框,您的建議可以正常工作,但我不會收到警告框。 – mary 2011-03-17 13:06:59

相關問題