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.ready当 DOM 尚未加载时,您正在获取对象之外的对象。

将整个代码移动到函数中。

于 2012-12-14T12:46:11.200 回答