使用 jQuery 模糊函数的输入字段的 Return 值

Return value from input field with the jQuery blur function

目标:用户关注输入字段。用户在输入字段中写入一个值。当用户完成并且输入字段不再处于焦点时,将插入的值保存到名为 'inputFieldValue' 的变量中。这应该通过调用函数 'returnInputValue'.

来完成

html

<!DOCTYPE html>
<html>
    <head>
        <title>My test</title>  
    </head>
    <body>

        <input class="input" />

        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="test.js"></script>

    </body>
</html>

test.js

function returnInputValue() {

    var inputValue;

    $('.input').blur(function() {   

        inputValue = $('.input').val();

    });

    return inputValue;

}

var inputFieldValue = returnInputValue();

当我在插入一个值并再次聚焦后从控制台调用变量 inputFieldValue 变量时,它仍然是 'undefined'。

我是不是漏掉了什么?

您执行的函数是一个异步函数,即它是基于input触发blur事件后的时间。您需要在 blur 事件中 return 它:

function returnInputValue() {
    var inputValue;
    $('.input').blur(function() {   
        inputValue = $('.input').val();
        return inputValue;
    });
}

正如某些人所建议的,即使上面的代码也不正确。 inputValue 不工作,因为它总是 returns undefined

或者,将其设置为直接访问最后一个 blur红色值。

var inputValue = "Not Blurred Yet!";
$('.input').blur(function() {   
    inputValue = $('.input').val();
});

function returnInputValue() {
    return inputValue;
}

尝试在函数外声明变量

    <script>
       var inputValue;
        function returnInputValue() {

        $('.input').blur(function() {   

            inputValue = $('.input').val();

        });

        return inputValue;
   }
    var inputFieldValue = returnInputValue();
    </script>

这是当前的逻辑:

  1. 初始化一个具有 undefined 值的变量。
  2. 绑定一个在未定义的时刻执行的处理程序,变量仍然是undefined
  3. Return undefined 值立即

上面的逻辑是错误的,应该纠正。最好的选择是将最终逻辑移动到 blur 处理程序中:

 $('.input').blur(function() {   
    var inputValue = this.value;
    // do something with the value
    // ...
 });

如果需要获取某个时刻的值,查询DOM、select元素并获取它的值。

你可以用。

$(document).on("blur","#Yourinput",function(){
   var Myval = $("#Yourinput").val();
   // Execute your code here I.e call your function 
   // ...
// You do not even have to call you function put
// It in a div to display 
$("#yourdiv").html(Myval);
//Will display it in a div
//Or add to array
Yourarray.push(Myval);
});

这使用了jQuery.on()方法。

这种方法非常灵活。如果您要插入数据库,您可以在此处使用 jquery ajax.

非常简单地执行此操作

你必须玩这些事件,即将模糊替换为另一个事件,但如果你使用 jquery 我认为这是最简单的方法