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

时间:2015-09-19 10:20:36

标签: 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>

test.js

function returnInputValue() {

    var inputValue;

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

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

    });

    return inputValue;

}

var inputFieldValue = returnInputValue();

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

我错过了什么吗?

4 个答案:

答案 0 :(得分:4)

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

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

正如一些人所建议的,即使上面的代码也不正确。 inputValue无法正常工作,因为它始终返回undefined

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

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

function returnInputValue() {
    return inputValue;
}

答案 1 :(得分:0)

尝试在函数

之外声明变量
    <script>
       var inputValue;
        function returnInputValue() {

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

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

        });

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

答案 2 :(得分:0)

这是当前的逻辑:

  1. 初始化一个{"total":1,"page":1,"records":6,"rows":[ {"id":"1","cell":["1","M","3","Back","E","23409","90890"]}, {"id":"2","cell":["2","L","2","Front","D","989","675"]}, {"id":"3","cell":["3","3","2","Side 3","E","23904","0"]}, {"id":"4","cell":["4","S4","3","P4","D","90382","0"]}, {"id":"5","cell":["5","S5","2","P5","P","302409","0"]}, {"id":"6","cell":["6","S6","B\/W","P6","O","932","0"]} ]} 值的变量。
  2. 绑定在未定义的接合点执行的处理程序,该变量仍为undefined
  3. 立即返回undefined
  4. 以上逻辑已被破坏,应该予以纠正。最好的选择是将最终逻辑移到undefined处理程序中:

    blur

    如果你需要在某个关键时刻获取值,请查询DOM,选择元素并获取它的值。

答案 3 :(得分:0)

你可以使用。

$(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我相信这是最简单的方法