Javascript 使用jQuery模糊函数从输入字段返回值
目标:用户关注输入字段。用户在输入字段中写入一个值。当用户操作完成且输入字段不再处于焦点时,将插入的值保存到名为“inputFieldValue”的变量中。这应该通过调用函数“returnInputValue”来完成 htmlJavascript 使用jQuery模糊函数从输入字段返回值,javascript,jquery,events,return,onblur,Javascript,Jquery,Events,Return,Onblur,目标:用户关注输入字段。用户在输入字段中写入一个值。当用户操作完成且输入字段不再处于焦点时,将插入的值保存到名为“inputFieldValue”的变量中。这应该通过调用函数“returnInputValue”来完成 html <!DOCTYPE html> <html> <head> <title>My test</title> </head> <body>
<!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>
当我在插入一个值并再次聚焦后从控制台调用变量inputFieldValue时,它仍然是“未定义的”
我错过了什么吗?您执行的函数是一个异步函数,即它基于
输入触发模糊事件后的时间。您需要在blur
事件中返回它:
function returnInputValue() {
var inputValue;
$('.input').blur(function() {
inputValue = $('.input').val();
return inputValue;
});
}
正如一些人所建议的,甚至上面的代码都是不正确的。inputValue
不起作用,因为它总是返回undefined
或者,将其设置为直接访问最后一个blur
red值
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>
var输入值;
函数returnInputValue(){
$('.input').blur(函数(){
inputValue=$('.input').val();
});
返回输入值;
}
var inputFieldValue=returnInputValue();
这是当前的逻辑:
初始化具有未定义值的变量
绑定在未定义连接处执行的处理程序,变量仍然是未定义的
立即返回未定义的值
上述逻辑被破坏,应予以纠正。最好的选择是将最终逻辑移动到blur
处理程序中:
$('.input').blur(function() {
var inputValue = this.value;
// do something with the value
// ...
});
如果需要在某个时刻获取值,请查询DOM,选择元素并获取其值。您可以使用
$(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()
方法
这种方法非常灵活。如果您要插入到数据库中,也可以使用jqueryajax在这里简单地完成
您必须处理事件,即用另一个事件替换模糊,但如果您使用jquery,我相信这是最简单的方法尝试移动var inputValue代码>外部功能您的操作是错误的。将逻辑移到blur
处理程序中。您的第一个示例是错误的。return
语句属于blur
处理程序,而不是returnInputValue
函数。returnInputValue
返回undefined
,因为它没有return
ed值。@Vohuman我已经更新了答案。你能删除否决票吗?我会删除第一个片段及其相关信息。应该注意的是,定义一个函数并返回一个预定义的值没有多大意义!我将取消否决票。我的否决票伤害了你的感情,很抱歉,但是错误的信息会伤害很多无辜的人。@Vohuman我已经清楚地说过,很多评论要求在blur
事件中包含return
,这是错误的。他/她可以使用focus/blur调用他/她的函数,这是一个很好的建议,但是您没有提供足够的信息说明他/她为什么应该使用建议的代码段。我觉得展示如何从事件中获取价值就足够了。在我的答案中添加了调用函数。我在打电话,所以当我看到我的笔记本电脑时,tidy会进一步添加。我明白了。这个答案是正确的,可以进一步改进。我的问题因为批评答案而被否决的事实是没有道理的。
$(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);
});