jQuery在输入文本上显示空字符串?

jQuery在输入文本上显示空字符串?,jquery,html,Jquery,Html,我有一张这样的表格 <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();

我有一张这样的表格

<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>

名称
jQuery(文档).ready(函数(){
var Name=jQuery('#Name').val();
jQuery('#name').blur(函数(){
console.log(名称);
});
});
但在这里,当我在输入文本字段中输入任何值时,它会显示错误,如
(空字符串)
。有人能告诉我这里出了什么问题吗?如何解决此问题?

应在onblur处理程序中设置名称变量:

<input type="text" id="name />
jQuery('#name').blur(function () {
    var Name = jQuery(this).val(); //or this.value
    console.log(Name);
});

应在onblur处理程序内设置名称变量:

jQuery('#name').blur(function () {
    var Name = jQuery(this).val(); //or this.value
    console.log(Name);
});
试一试


名称
jQuery(文档).ready(函数()
{
jQuery('#name').blur(函数(){
var Name=jQuery(“#Name”).val();
jQuery(“#name”).blur(函数()
{
console.log(名称);
});
});
});
试试看


名称
jQuery(文档).ready(函数()
{
jQuery('#name').blur(函数(){
var Name=jQuery(“#Name”).val();
jQuery(“#name”).blur(函数()
{
console.log(名称);
});
});
});
此行:

var Name = jQuery('#name').val();
是一次性操作,将
Name
的值设置为代码执行时输入的值。当元素的值发生变化时,它将而不是神奇地更新
Name
的值(为什么有这么多人认为它会发生变化?)。您需要执行以下操作:

jQuery(document).ready(function () {
    jQuery('#name').blur(function () {
        console.log(this.value);
    });
});
我删掉了现在毫无意义的
Name
变量,直接使用元素引用(
this
)来获取它的value属性,而不是使用jQuery函数。

这一行:

var Name = jQuery('#name').val();
是一次性操作,将
Name
的值设置为代码执行时输入的值。当元素的值发生变化时,它将而不是神奇地更新
Name
的值(为什么有这么多人认为它会发生变化?)。您需要执行以下操作:

jQuery(document).ready(function () {
    jQuery('#name').blur(function () {
        console.log(this.value);
    });
});

我删掉了现在毫无意义的
Name
变量,直接使用元素引用(
this
)来获取它的value属性,而不是使用jQuery函数。

如果您想要console.log框中键入的任何内容,您可以执行以下操作:

<script>
  jQuery(document).ready(function() {
    jQuery('#name').keyup(function() {
        var Name = jQuery('#name').val();
        console.log(Name);
    });
  });
</script>

jQuery(文档).ready(函数(){
jQuery('#name').keyup(函数(){
var Name=jQuery('#Name').val();
console.log(名称);
});
});

此时,您将在页面加载中获得
#name
的值,它将是
“”
,一个空字符串。由于未输入任何内容。

如果要将键入框中的内容记录到console.log中,可以执行以下操作:

<script>
  jQuery(document).ready(function() {
    jQuery('#name').keyup(function() {
        var Name = jQuery('#name').val();
        console.log(Name);
    });
  });
</script>

jQuery(文档).ready(函数(){
jQuery('#name').keyup(函数(){
var Name=jQuery('#Name').val();
console.log(名称);
});
});

此时,您将在页面加载中获得
#name
的值,它将是
“”
,一个空字符串。因为没有输入任何内容。

您没有关闭输入的id,并且没有使用空的
操作
标记。是的,用于关闭id,但空操作可以。如果未通过当前url,它只会假定当前url。您没有关闭输入的id,并且没有使用空的
操作
标记。是的,用于关闭id,但空操作可以。如果没有通过,它只是假设当前url。我认为你的答案不正确,OP可能有键入错误,请更正答案,在有人投票或打旗子之前。你是对的,它在访问模糊函数外的Name变量时遇到问题。我认为你的答案不正确,OP可能有键入错误,请更正答案,在有人否决投票或表明您是对的之前,OP在访问模糊函数外的Name变量时遇到问题。