8

html:

<div id="search">
  <input id="term" type="text" value="enter your search" />
  <button id="hit" type="button" name="">Search</button>
</div>

jQuery:

$(document).ready(function() {
  var term = $('#term').val();
  $('#hit').click(function() {
    alert(term);
  });
});

問題は、入力フィールドに何を入力してボタンを押しても、常に元の入力値である「検索を入力してください」を警告することです。

どうすれば修正できますか?

4

4 に答える 4

22

問題は、このコード ブロック全体が DOM Ready イベントで実行されることです。

var term = $('#term').val();は一度だけ評価され、term 変数に「enter your search」を格納します。これが、値を何に変更しても、変数はページがレンダリングされたときの初期値を保持する理由です。

代わりに、次のようなことを行う必要があります。

JQuery

$(document).ready(function() {
  $('#hit').click(function() {
    alert($('#term').val());
  });
});

このコードでは、クリック イベント リスナーが起動したときに、id term を持つ要素の値が評価されます。

于 2012-05-29T00:42:57.420 に答える
7

ドキュメントの準備ができたときに変数を作成したため..クリック関数内に変数「term」を作成してみてください...

  $(document).ready(function() {
      $('#hit').click(function(event) {
          var term = $('#term').val();
          alert(term);
      });
  });​
于 2012-05-29T00:40:51.920 に答える
4

clickの値を取得する必要があります。document ready

$(document).ready(function() {
  $('#hit').click(function() {
    var term = $('#term').val();
    alert(term);
  });
});
于 2012-05-29T00:40:51.193 に答える
0

これは、トラブルの後に私のために働きました

function getValue(){
    $("qty").value = parseInt($("qty").value);
}

文字列用

function getValue(){
    $("qty").value = $("qty").value;
}
于 2019-03-16T10:00:53.890 に答える