我有一个这样的表格
<form action="">
<label for="name">Name</label>
<input type="text" id="name" />
</form>
<script type="text/javascript">
jQuery(document).ready(function() {
var Name = jQuery('#name').val();
jQuery('#name').blur(function() {
console.log(Name);
});
});
</script>
但是当我在输入文本字段中输入任何值时,它显示的错误就像
(an empty string)
。所以有人能告诉我这里有什么不对吗?怎么解决这个问题?
答案 0 :(得分:4)
答案 1 :(得分:3)
这一行:
var Name = jQuery('#name').val();
是一次性操作,将Name
的值设置为该代码执行时的输入值。当该元素的值发生变化时,不会神奇地更新Name
的值(为什么这么多人会得到这样的印象?)。你需要这样做:
jQuery(document).ready(function () {
jQuery('#name').blur(function () {
console.log(this.value);
});
});
我已经删除了现在没有意义的Name
变量,并且直接使用元素引用(this
)来获取其value属性而不是使用jQuery函数。
答案 2 :(得分:2)
名称变量应该在onblur处理程序中设置:
jQuery('#name').blur(function () {
var Name = jQuery(this).val(); //or this.value
console.log(Name);
});
答案 3 :(得分:0)
尝试
<form action="">
<label for="name">Name</label>
<input type="text" id="name" />
</form>
<script type="text/javascript">
jQuery(document).ready(function()
{
jQuery('#name').blur(function () {
var Name = jQuery("#name").val();
jQuery("#name").blur(function()
{
console.log(Name);
});
});
});
</script>
答案 4 :(得分:0)
如果你想在console.log中输入任何内容,你可以这样做:
<script>
jQuery(document).ready(function() {
jQuery('#name').keyup(function() {
var Name = jQuery('#name').val();
console.log(Name);
});
});
</script>
目前,您在页面加载时获得#name
的值,该值为""
,为空字符串。没有输入任何内容。