0

$(document).ready()コードをドキュメントの HEAD に配置 し、その中に がalert($("#some-textbox").val())ありますが、ページが読み込まれると「未定義」が生成されます。ただし、このコードをページのフッターに移動すると機能します。

コード:

<head>
...
<script type="text/javascript">
  var searchForm = $("#search-form");
  var searchBar = $("#search-bar");
  var INITIAL_TEXT = "Start typing to find friends or colleagues...";
  $(document).ready(function() {

      alert(searchBar.val()); // For testing purpose only; outputs undefined

      searchForm.submit(function(e) {
            if(searchBar.val() == INITIAL_TEXT) {
                searchBar.val("");
            }
      });
      searchBar.focus(function() {
            if(searchBar.val() == INITIAL_TEXT) {
                searchBar.val("");
            }
      });
      searchBar.blur(function() {
            if(searchBar.val() == "") {
                searchBar.val(INITIAL_TEXT);
            }
      });
  });
  </script>
4

2 に答える 2

5

セレクター$("some-textbox").val()が無効です。

もしかして

$(".some-textbox").val()

また

$("#some-textbox").val()

多分?

更新(質問が変更されました)

変数定義を document.ready 内に移動する必要があります

$(document).ready(function() {
    var searchForm = $("#search-form");
    var searchBar = $("#search-bar");
    //....
});
于 2012-12-14T12:37:12.230 に答える
3

doucment.readyDOMがまだロードされていないときに、オブジェクトを外部にフェッチしています。

コード全体を関数に移動します。

于 2012-12-14T12:46:11.200 に答える