2014-05-16 34 views
0

說$未定義,對象預計..實際上我想驗證是否所有單選按鈕檢查單擊按鈕時! help plz

<script type="text/javascript"> 
$(document).on('click', 'form', function() { 

    var validate = true; 
    var unanswered = new Array(); 

    // Loop through available sets 
    $('.qselections').each(function() { 
    // Question text 
    var question = $(this).prev().text(); 
    // Validate 
    if (!$(this).find('input').is(':checked')) { 
     // Didn't validate ... dispaly alert or do something 
     unanswered.push(question); 

     validate = false; 
    } 
}); 

if (unanswered.length > 0) { 
    msg = "Please answer the following questions:\n" + unanswered.join('\n'); 
    alert(msg); 
} 
return validate; 
}); 
</script> 
+4

您是否包含對jQuery的引用?你有沒有在任何其他腳本之前包含該參考? – Yuck

+0

我已經更新了代碼。在之後,我已將腳本放入了我的身體。 – Student

回答

0

你忘了在你的代碼之前在你的代碼中包含jquery.js文件嗎?

+1

他沒有,只是沒有把它放在代碼標籤中。 – Adjit

+0

是的,你是對的,我完全錯過了 – MDiesel

+1

還有就緒函數,確保你在制定該腳本之前定義了jquery – Raptus

0

一個通常設置你的腳本引用接受的方式如下(還有其他的,這不是待所有終止全):

<html> 
    <head> 
    </head> 
    <body> 
     <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
     <script src="MyScriptFile.js"></script> 
     <script> 
      $(function() { 
       $(document).on('click', 'form', function() { 

        var validate = true; 
        var unanswered = new Array(); 

        // Loop through available sets 
        $('.qselections').each(function() { 
        // Question text 
        var question = $(this).prev().text(); 
        // Validate 
        if (!$(this).find('input').is(':checked')) { 
         // Didn't validate ... dispaly alert or do something 
         unanswered.push(question); 

         validate = false; 
        } 
       }); 

       if (unanswered.length > 0) { 
        msg = "Please answer the following questions:\n" + unanswered.join('\n'); 
        alert(msg); 
       } 
       return validate; 
      }); 
     </script> 
    </body> 
</html> 

這樣你可以肯定的是(1)在任何腳本嘗試做腳本事情之前加載頁面;(2)在可能想要使用它的其他腳本之前包含jQuery。

這並非萬無一失,您可能(最終)需要使用類似Require.js或更簡單的步驟defer屬性。

+0

你的意思是我必須包含$(function(){before $(document ).on('click','form',function(){??? – Student

+0

所有這些都應該被封裝在匿名函數中,參見我的編輯 – Yuck

+0

你試圖返回'validate' jquery'on'方法是一個事件委託,你不能這麼容易地返回值 – Yuck

0

1.在head部分,您是否已在first script tag中包含Jquery庫文件夾。在這種情況下,只有你的基於jQuery的代碼將被執行。

2.是否支持wrap the code into $(document).ready()功能。

3您是否在角落使用PHP。因此需要用Jquery.替換$

+0

要點3是不可能的:要麼PHP會引發致命錯誤('$('是無效的PHP代碼)+替換爲'jQuery'會比使用'Jquery'好:) –

相關問題