我无法将文本框中用户键入的值捕获到变量中。
我不想使用<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>
答案 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>
.text()方法不能用于表单输入或脚本。要设置或获取input或textarea元素的文本值,请使用.val()方法。要获取脚本元素的值,请使用.html()方法。
从jQuery 1.4开始,.text()方法返回text和CDATA节点以及元素节点的值。