使用 jQuery 模糊函数从输入字段返回值

Jac*_*hor 3 javascript jquery events return onblur

目标:用户关注输入字段。用户在输入字段中写入一个值。当用户完成并且输入字段不再处于焦点时,将插入的值保存到名为“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>
Run Code Online (Sandbox Code Playgroud)

测试.js

function returnInputValue() {

    var inputValue;

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

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

    });

    return inputValue;

}

var inputFieldValue = returnInputValue();
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么吗?

Pra*_*man 6

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

function returnInputValue() {
    var inputValue;
    $('.input').blur(function() {   
        inputValue = $('.input').val();
        return inputValue;
    });
}
Run Code Online (Sandbox Code Playgroud)

正如一些人所建议的那样,即使上面的代码也不正确。该inputValue不会,因为它总是返回工作undefined

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

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

function returnInputValue() {
    return inputValue;
}
Run Code Online (Sandbox Code Playgroud)

  • 你的第一个例子是错误的。`return` 语句属于 `blur` 处理程序而不是 `returnInputValue` 函数。`returnInputValue` 返回 `undefined`,因为它没有 `return`ed 值。 (3认同)