jQuery的.在按钮点击事件中获取文本输入字段的值?

gil*_*ero 8 jquery

HTML:

<div id="search">
  <input id="term" type="text" value="enter your search" />
  <button id="hit" type="button" name="">Search</button>
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$(document).ready(function() {
  var term = $('#term').val();
  $('#hit').click(function() {
    alert(term);
  });
});
Run Code Online (Sandbox Code Playgroud)

问题是,无论我在输入字段中键入什么内容,然后点击按钮,它始终会提醒原始输入值"输入您的搜索".

我该如何解决?

Aar*_*ron 20

您遇到的问题是整个代码块都在DOM ready事件上执行.

var term = $('#term').val();正在评估一次,并在术语变量中存储"输入您的搜索".这就是为什么无论您将值更改为什么,变量在呈现页面时仍保持初始值.

相反,你应该做的更像是以下内容:

JQuery的

$(document).ready(function() {
  $('#hit').click(function() {
    alert($('#term').val());
  });
});
Run Code Online (Sandbox Code Playgroud)

在这段代码中,当click事件侦听器触发时,将评估具有id term的元素的值.


rjm*_*mcb 7

因为您在文档准备就绪时创建了变量..尝试在单击函数内创建变量"term"...

  $(document).ready(function() {
      $('#hit').click(function(event) {
          var term = $('#term').val();
          alert(term);
      });
  });?
Run Code Online (Sandbox Code Playgroud)