2013-03-25 129 views
5

我被困在什麼似乎是一個微不足道的問題,我可能會踢我自己因爲想念這個..無論如何,我的問題是我無法從文本字段中獲取值。JQuery val()返回空

HTML:

<form> 
     <label for="">Enter Username:</label> 
     <input id="usernameText" type="text" size="30" /> 
     &nbsp;&nbsp;<input type="button" value="Generate" onclick="generateQuery(); return  false;" /> 
</form> 

的Javascript:

<script type="text/javascript"> 

     var username = $("#usernameText").val(); 

     function generateQuery(){ 

      alert(username); 

     } 
</script> 

我做了以下if (jQuery) {..並確保jQuery是加載。

在警報中顯示一個空的對話框。

如果我將$(document).ready();包含到我的腳本中,函數generateQuery不會被調用。任何想法爲什麼..?

<script type="text/javascript"> 

    $(document).ready(function(){ 
     var username = $("#usernameText").val(); 

     function generateQuery(){ 

      alert(username); 

     } 
    });  
</script> 
+0

@PSR:我有,我在筆記中提到過。 – kaizenCoder 2013-03-25 04:15:33

回答

10

函數內將您的變量。

function generateQuery(){ 
    var username = $("#usernameText").val(); 
    alert(username); 
} 

至於你的其他問題,「如果我包括$(文件)。就緒();?到我的腳本函數產生不被調用的任何想法,爲什麼......」

這是因爲範圍。當您添加document.ready處理程序時,您在匿名函數中包裝generateQuery,因此button onclick="generateQuery()"代碼不可見。

3

這將調用,而頁面loading.So每當頁面加載文本框empty.Try一個函數中編寫。

function generateQuery(){ 
    var username = $("#usernameText").val(); 
    alert(username); 
} 

當您在document.ready將CAL寫; L,而頁面loading.If你需要的用戶名的值,則顯式調用。

-1

你在哪裏調用函數?

我認爲你需要:

<script type="text/javascript"> 

    $(document).ready(function(){ 
     generateQuery(); 


    });  

function generateQuery(){ 
    var username = $("#usernameText").val(); 
      alert(username); 

     } 
</script> 
+0

它被稱爲onchange的輸入字段。 – judda 2013-03-25 04:04:00

1

該值是第一次通過導出。所以當頁面第一次加載時。

<script type="text/javascript"> 
     function generateQuery(){ 
      var username = $("#usernameText").val(); 
      alert(username); 

     } 
</script> 
0

這裏要定義你要調用的函數,以得到它運行使用這個generateQuery();行調用函數的功能。