2017-09-16 12 views
0

jQueryを使用して入力の値を取得します。ここでjQueryを使用して入力値を取得する

<input type="text" name="a" id="a" /> 
<input type="button" name="b" id="b" value="Click here"/> 

をjQueryのです::

はここにHTMLだ

$(document).ready(function() { 

    var normal=$('#a').val(); 
    $('#b').on("click", function() { 
      alert(normal); 
    }); 

}); 

何らかの理由でalert(normal);alert($('#a').val());が行うのに対し、動作しません。どうして? normal$('#a').val();は同じ値を保持していませんか?

あなたはjsfiddleをしたい場合:http://jsfiddle.net/L2uX4/20/

おかげ

+0

の線に沿って、あなたが得る価値をクリックイベントの通常の値をキャプチャすることができますその時点で、変数を再度上書きするまではあなたが持っているものです。 – epascarello

答えて

1

あなたはdocument.ready()時にnormalを割り当て、ないあなたがクリックしたときに再割り当てするので、通常は、ときにページあなたが入力フィールドに与えるどのような値になりますロードする。

0

を使用すると、クリック機能ハンドラー外var normalを宣言した場合、DOMの準備ができたら、テキストボックスの値がないよう、初期値は空になります

$(document).ready(function() { 


     $('#b').on("click", function() { 
     var normal=$('#a').val(); 
     alert(normal); 
     }); 

    }); 
2

このコードを試してみてください。しかし、clickイベントハンドラ内で宣言すると、テキストボックスに何かを入力してボタンをクリックすると、値が割り当てられます。 次のコードは、私の作品 は

$(document).ready(function() { 
 

 
    
 
    $('#b').on("click", function() { 
 
      var normal= $('#a').val(); 
 
     alert(normal); 
 
     // same as alert($('#a').val()); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="a" id="a" /> 
 
<input type="button" name="b" id="b" value="Click here"/>

0

はい、あなたは正しいです、

id= aとテキストボックスが負荷にいくつかのテキストを持っていた提供。それによる

私は

<input type="text" name="a" id="a" value= "foo"/> 

フィドルの線に沿って何か意味:あなたはClickhereボタンを押した場合http://jsfiddle.net/Jayas/vhjm8v31/2/

今ではfooが表示されます。

あなたの場合

  1. あなたはnormalaの値を代入すると、テキストボックスが空です。
  2. 何かが入力されたか、何かが入力された後に変数normalをリセット/設定するためのハンドラやイベントはありません。宣言にテキストの再バインド - DR:それによって私は

    $(document).ready(function(){ 
    $('#a').bind('input propertychange', function() { 
         normal = $('#a').val(); 
        } 
    }) 
    

フィドルhttp://jsfiddle.net/Jayas/vhjm8v31/4/

TLの線に沿ってinput changeに格納された値を持つの線に沿って何かを意味します変数が「自動的に」起こらない

これで、ボタンafをクリックすると再割り当てnormalを入力すると、入力された値が表示されます。

または代わりに、あなたはすでにそれを持っているとして、それが動的ではありませんので、あなたが、それが再バインドされません....

$('#b').on("click", function() { 
     var normal = $('#a').val(); 
     alert(normal); 
    }); 
関連する問題