2012-09-06 23 views
1

我創建了一個訂單如下包含多個複選框以添加項目,現在我想做的驗證爲禁用的項目時,只在相關的複選框用戶點擊,請幫我改正下面的代碼。JavaScript驗證(gen_validatorv4.js) - 基於複選框導致

<script language="JavaScript"> 
function check_box2(status) 
{ 
status=!status; 
document.orderform.item2.disabled = status; 
document.orderform.qty2.disabled = status; 
} 
function check_box3(status) 
{ 
status=!status; 
document.orderform.item3.disabled = status; 
document.orderform.qty3.disabled = status; 
} 
function check_box4(status) 
{ 
status=!status; 
document.orderform.item4.disabled = status; 
document.orderform.qty4.disabled = status; 
} 
</script> 

<script language="JavaScript" src="gen_validatorv4.js" type="text/javascript" ></script> 

<body onload="check_box2(status); check_box3(status); check_box4(status);"> 
<form action="order.php" method="POST" name="orderform" id="orderform" onSubmit="return validation();"> 
<table> 
<tr><td valign="top"> <p>Order Item 1 :</p> </td><td> <select id="item1" name="item1"> 
     <option value="0" selected="selected"><p> [Select] </p></option> 
     <option value="1"> <p> Product 1 </p></option> 
     <option value="2"> <p> Product 2 </p> </option> 
     <option value="3"> <p> Product 3 </p> </option> 
</select> </td> 

<td valign="top"><p>Quantity :</p></td><td><input style="width:30px;" name="qty1" type="text"></td> </tr> 

<tr><td valign="middle"><input type="checkbox" name="check2" onclick="check_box2(this.checked)" >Add Item 2 : </td><td> <select id="item2" name="item2"> 
     <option value="0" selected="selected"><p> [Select] </p></option> 
     <option value="1"> <p> Product 1 </p></option> 
     <option value="2"> <p> Product 2 </p> </option> 
     <option value="3"> <p> Product 3 </p> </option> 
</select> </td> 

<td valign="top"><p>Quantity :</p></td><td><input style="width:30px;" name="qty2" type="text"></td> </tr> 

<tr><td valign="middle"> <input type="checkbox" name="check3" onclick="check_box3(this.checked)" >Add Item 3 : </td><td> <select id="item3"> 
     <option value="0" selected="selected"><p> [Select] </p></option> 
     <option value="1"> <p> Product 1 </p></option> 
     <option value="2"> <p> Product 2 </p> </option> 
     <option value="3"> <p> Product 3 </p> </option> 
</select> </td> 

<td valign="top"><p>Quantity :</p></td><td><input style="width:30px;" name="qty3" type="text"></td> </tr> 

<tr><td valign="middle"> <input type="checkbox" name="check4" onclick="check_box4(this.checked)" >Add Item 4 : </td><td> <select id="item4"> 
     <option value="0" selected="selected"><p> [Select] </p></option> 
     <option value="1"> <p> Product 1 </p></option> 
     <option value="2"> <p> Product 2 </p> </option> 
</select> </td> 

<td valign="top"><p>Quantity :</p></td><td><input style="width:30px;" name="qty4" type="text"></td> </tr> 

</table> 

<div><input name="submit" type="submit" value="Send"> </div> 
</form> 

<script type="text/javascript"> 
    var frmvalidator = new Validator("orderform"); 
    frmvalidator.addValidation("item1","dontselect=0", "Please select an item"); 
    frmvalidator.addValidation("qty1","req","Please enter your quantity"); 

    if (document.orderform.item2.checked==true) 
    { 
     frmvalidator.addValidation("item2","dontselect=0", "Please select an item2"); 
     frmvalidator.addValidation("qty2","req","Please enter your quantity"); 
    } 
</script> 

</body> 

回答

1

您只需添加一些條件:

if(document.getElementById('checkbox123').checked == true) { 
    // validate code here 
} 

你可以像下面這樣做還有:

if(document.orderform.checkbox123.checked == true) { 
    // validate code here 
} 
+0

感謝您的回覆,我試過,如果(document.orderform.checkbox123.checked ==真){},你可以看到它在我的代碼,但它不適合我 – sha123

+0

你使用螢火蟲或類似的東西工作看到控制檯錯誤?如果不考慮這一點,它有助於開發JavaScript。您甚至可以在其中完成全部代碼並執行測試,然後將代碼添加到您的網站。我開發了一個巨大的室內地圖覆蓋層,如果沒有控制檯就無法做到。 – transilvlad

+0

我沒有使用Firebug的沒有,會檢查它,非常感謝您的回覆 – sha123

1

能夠通過使用其中包括VWZ_IsChecked()函數來完成驗證在gen_validatorv4.js腳本

frmvalidator.addValidation("item2","dontselect=0", "Please select an item2", 
    "VWZ_IsChecked(document.forms['orderform'].elements['check2'],'check2')"); 


frmvalidator.addValidation("qty2","req","Please enter your quantity for item 2", 
    "VWZ_IsChecked(document.forms['orderform'].elements['check2'],'check2')");