JQUERY输入字段值存储在变量中

时间:2011-12-24 13:56:37

标签: jquery input textfield

我无法将文本框中用户键入的值捕获到变量中。

我不想使用<form>,还有其他方法吗?

   <html>
   <head>
   <style>

     p { color:blue; margin:8px; }
     </style>
     <script src="http://code.jquery.com/jquery-latest.js"></script>
   </head>
   <body>
   <input type="text" id="txt_name"  />

   <script type="text/javascript">
   value = $("#txt_name").val(); 
   $("#dom_element").text(value);
   </script>

   </body>
   </html>

3 个答案:

答案 0 :(得分:11)

如果您想获得用户输入的值,那么您需要这样做以响应某种事件。当用户键入并释放密钥时,会发生密钥事件(信不信由你)。如果您捕获键盘,您可以通过每次击键更新您的变量,但您应该捕获“更改”以允许粘贴和拖放不使用键盘的更改。当用户修改字段然后单击或标签时,会发生“更改”事件。

此外,目前您的value变量是全局变量,但如果您正在使用它是为了设置另一个字段的值,则根本不需要它:

$("#txt_name").on("keyup change", function() {
   $("#dom_element").text(this.value);
});

// OR, if you need the variable for some other reason:
$("#txt_name").on("keyup change", function() {
   var value = this.value; // omit "var" to make it global
   $("#dom_element").text(value);
});

请注意,在事件处理函数中,函数this将是dom元素,因此您可以并且应该在没有jQuery的情况下直接获取其值。

如果您使用的是旧版jQuery,请使用.bind()代替.on()

答案 1 :(得分:3)

你的意思是这样吗?

脚本:

jQuery(function(){
    $("#txt_name").keypress(function() {
      var value = $("#txt_name").val(); 
      $("#myDiv").text(value);
    });
});

HTML:

<form>
  <fieldset>
    <input id="txt_name" type="text" value="Hello World" />
  </fieldset>
</form>
<div id="myDiv"></div>

我希望能帮到你。

答案 2 :(得分:1)

<script>
   $('#txt_name').keyup(function(){
      value = $("#txt_name").val(); 
      $("#dom_element").val(value);
   });
</script>

来自api.jquery.com

  

.text()方法不能用于表单输入或脚本。要设置或获取input或textarea元素的文本值,请使用.val()方法。要获取脚本元素的值,请使用.html()方法。

     

从jQuery 1.4开始,.text()方法返回text和CDATA节点以及元素节点的值。