2013-03-25 15 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

答えて

10

は、関数内で、あなたの変数を割り当てます。あなたの他の質問については

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

「私は$(ドキュメント).ready()が含まれている場合;?なぜ関数が呼び出されません生成する私のスクリプトに任意のアイデアを..」

これはスコープのために発生します。 document.readyハンドラを追加すると、匿名関数の内部でgenerateQueryが折り返されるため、button onclick="generateQuery()"コードには表示されません。

3

ページが読み込まれている間に呼び出されます。ページが読み込まれるたびに、テキストボックスは空です。関数内に書き込むようにしてください。

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

あなたはdocument.readyに書くとき、それはCALます。リットルのページでは、ユーザー名の値が、その後、明示的に呼び出す必要loading.Ifている間。

-1

ここでは、関数????

私はあなたが必要だと思う:

<script type="text/javascript"> 

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


    });  

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

     } 
</script> 
+0

入力フィールドのonchangeと呼ばれています。 – judda

1

値は最初に導出されています。したがって、ページが最初に読み込まれるとき。

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

     } 
</script> 
0

ここでは、あなたはそれがあなたの関数を呼び出すために、このgenerateQuery();ラインを使用する実行得るために機能を呼び出す必要があります関数を定義しています。

関連する問題