2013-06-04 39 views
0

我實際上正在做一個調查表單創建(類似surveymonkey)。有一個專欄,您可以選擇是否將此問題作爲必填字段。從那裏將有創建表單時選中字段的驗證。jquery表單驗證的選擇性字段

所以現在我的問題是,必填字段是你喜歡的,所以它不是固定的。

我該如何着手編寫jquery進行驗證,以便根據強制要求驗證所選字段?

下面是我迄今所做的代碼示例..它只驗證其中一個字段。但是,如果創建表單的人決定擁有多個必填字段,則不會檢查下一個字段。

<?php 
$vQuery = "SELECT * FROM scFormLayout WHERE surveyID = '$id'"; 
$vResult = sqlsrv_query($conn, $vQuery); 

while ($value = sqlsrv_fetch_array($vResult)) { 
    $vID = $value['id']; 
    $qnsID = 'qns'.$vID.'[]'; 
    $compulsory = $value['compulsory']; 
    $vQuestion = $value['question']; 

if ($compulsory == 'Compulsory') { 
?> 
    <script type="text/javascript" language="javascript"> 
     $(document).ready(function() { 
      // 1. prepare the validation rules and messages. 
       var rules = {"<?php echo $qnsID; ?>": "required"}; 
       var messages = {"<?php echo $qnsID; ?>": "<?php echo $vQuestion; ?> is required"}; 
      // 2. Initiate the validator 
       var validator= new jQueryValidatorWrapper("Form",rules, messages); 
      // 3. Set the click event to do the validation 
       $("#btnValidate").click(function() { 
        if (!validator.validate()) 
         return; 
        }); 
       }); 

    </script> 
<?php } } 
sqlsrv_free_stmt($vResult); ?> 
+0

因爲您正在多次運行document.ready,並且它只會考慮最後一個。 –

+0

但是,如果我將php代碼移動到document.read之後,它甚至不能工作。T_T任何想法如何將其格式化,以便以某種方式工作..?謝謝.. – user2376259

+0

@ManishJangir jQuery運行所有document.ready()處理程序,而不僅僅是最後一個。 – Barmar

回答

0

更好的方法是在while循環中爲每個問題添加一個「required」類(應該是必需的)。

然後在document.ready()函數內的單獨腳本標記下,在表單上簡單地使用jquery.validate。讓我知道它是否有幫助,或者您需要更多信息。

---編輯--- 例如,在您的情況下,如果您在while循環中顯示來自數據庫的問題給用戶,對於某些問題,您將「強制」值設置爲「強制」。現在,您只需要按照jquery的要求驗證此類問題。然後下面是如何去做。

enter code here 

<?php 
while($res = $results) { 
    echo $res['question'].'<br/>'; 
    if($res['compulsory'] = 'Compulsory') 
     echo '<input name = "any_name" class="required">'; 
    else 
     echo '<input name = "any_name">'; 
} 
?> 
<script> 
$(document).ready(function() { 

$('#myForm').validate(); 

}) 
</script> 

希望是足夠的信息。

+0

嗨...你會介意給我喜歡的一些例子或指導,因爲我對jquery很新穎。T_T謝謝! – user2376259

+0

嗨,好的, 我會在上面編輯我的答案。 – tornados

+0

嗯,我明白代碼是如何工作的,但因爲我的問題的輸入類型也是有選擇的,所以這裏是打印出問題的樣本。 if($ input =='Multiple choice(only one answer)[Radio Button]'){ ?> []「value =」<?php echo $ arr;?>「/><?php echo $ arr; ?>
所以我需要使用如果每個輸入?還是有另一種方法呢? ><;; – user2376259