目标:用户关注输入字段。用户在输入字段中写入值。当用户完成并且输入字段不再处于焦点时,将插入的值保存到名为“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变量时,它仍然是“未定义的”。
我错过了什么吗?
答案 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)
这是当前的逻辑:
{"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"]}
]}
值的变量。undefined
。undefined
值以上逻辑已被破坏,应该予以纠正。最好的选择是将最终逻辑移到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我相信这是最简单的方法