2016-09-14 149 views
0

我是JavaScript新手,很難驗證我的表單。jQuery驗證警報問題

我有一個從哪裏問客戶的問題。有2個必答問題(範圍的),我已經設定在一個循環requiredQuestions陣列,會以JavaScript參考,以驗證只要求問題)

這裏是我的表單代碼:

<form id="frmQuestion" method="post"> 
<input type="range" id="#QuestionID# name="#QuestionID#" min="0" max="10"> 
<textarea cols="40" rows="10" name="#QuestionDomID#" id="#QuestionDomID#" </textarea> 
    <input type="button" value="submit" id="frmQuestion_submit"> 
</form> 

而且這裏是JavaScript:

<cfoutput> 
    <script type="text/javascript"> 
    $('##frmQuestion_submit').click(function() 
    { 
     var jsArr; 
     var jsArr = #SerializeJson(requiredQuestions)#; 
     for(var i=0;i<jsArr.length;i++){ 
      var question = jsArr[i].FNAME; 
      var qValue = $("##QuestionID#").val(); 

      if (qValue == 0){ 
       alert('Please fill all required fields'); 
       return false; 
      } 
      else{ 
      return true; 
      } 

     } 

    }); 
</script> 

我只想提醒一次,但在這裏它是警告兩次 - 每個問題。如果我添加返回false,如果第一個問題得到解答,則不提醒。

+0

請擺脫所有的雙主題標籤的jQuery的 –

+0

哦,我這樣做是因爲使用ColdFusion作爲服務器端語言是,我已經CFOUTPUT – user2675939

+0

你的HTML是相當壞了。如果它現在正在運行,那麼瀏覽器正在變得非常好。你也沒有一個名爲'frmQuestion_submit'的元素,所以你不能真正綁定到它上面的事件。考慮在表單上設置一個'submit'處理程序。先修復你的HTML然後再碰到其他問題。 –

回答

0

循環遍歷所有數組,並設置一個標誌,指示發現錯誤條件。循環執行後,檢查標誌並採取相應措施。

var validationFailed = false; 
for(var i=0;i<jsArr.length;i++){ 
     var question = jsArr[i].FNAME; 
     var qValue = $("##QuestionID#").val(); 

     if (qValue == 0){ 
      validationFailed = true; 
     } 
} 
if (validationFailed) 
{ 
    alert('Please fill all required fields'); 
    return false; 
} 
else 
{ 
    return true; 
} 
+0

這工作的一部分,但它現在不斷提醒消息,永遠不會返回true – user2675939

+0

我不是確定你的代碼中發生了什麼,它檢查了值,但可能你提供的代碼沒有正確地檢查值。你確定'.val()'是一個可以與0相比的數字嗎?我的猜測是,它不會。你是否想檢查'qValue.length'?我假設你也想用'question'變量做一些事情,否則它看起來毫無用處。你的意思是做'qValue = $(「#」+ question).val()'? –

+0

雅,我改變questionID到requiredQuestions數組的問題,工作,謝謝! – user2675939