使用 jQuery 模糊函数从输入字段返回值
Posted
技术标签:
【中文标题】使用 jQuery 模糊函数从输入字段返回值【英文标题】:Return value from input field with the jQuery blur function 【发布时间】:2015-12-16 11:46:33 【问题描述】:目标:用户关注输入字段。用户在输入字段中写入一个值。当用户完成并且输入字段不再处于焦点时,将插入的值保存到名为“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 变量时,它仍然是“未定义”。
我错过了什么吗?
【问题讨论】:
尝试将var inputValue;
移出函数
你做错了。将逻辑移动到 blur
处理程序中。
【参考方案1】:
你执行的函数是一个异步函数,即它基于input
触发blur
事件后的时间。您需要在 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;
【讨论】:
你的第一个例子是错误的。return
statement 属于 blur
处理程序而不是 returnInputValue
函数。 returnInputValue
返回 undefined
,因为它没有 return
ed 值。
@Vohuman 我已经更新了我的答案。您可以删除反对票吗?
我会删除第一个 sn-p 及其相关信息。需要注意的是,定义一个函数并返回一个预定义的值并没有多大意义!我将删除反对票。我的投票伤害了您的感受,对此深表歉意,但错误的信息可能会伤害许多无辜的人。
@Vohuman 我已经明确说过了,许多 cmets 要求在 blur
事件中包含 return
,这是错误的。【参考方案2】:
这是目前的逻辑:
-
初始化具有
undefined
值的变量。
绑定一个在未定义节点执行的处理程序,变量仍然是undefined
。
立即返回undefined
值
上面的逻辑有问题,应该改正。最好的选择是将最终逻辑移到blur
处理程序中:
$('.input').blur(function()
var inputValue = this.value;
// do something with the value
// ...
);
如果你需要在某个时刻获取值,查询DOM,选择元素并获取它的值。
【讨论】:
我的问题因批评答案而被否决这一事实毫无意义。【参考方案3】:尝试在函数外声明变量
<script>
var inputValue;
function returnInputValue()
$('.input').blur(function()
inputValue = $('.input').val();
);
return inputValue;
var inputFieldValue = returnInputValue();
</script>
【讨论】:
【参考方案4】:你可以使用。
$(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,我相信这是最简单的方法
【讨论】:
他/她可以使用焦点/模糊来调用他/她的功能 嗯,这是个好建议,但您没有提供足够的信息说明为什么他/她应该使用建议的代码 sn-p。 我觉得展示如何从事件中获取价值就足够了。在我的答案中添加了呼叫功能。我正在打电话,所以当我走到我的笔记本电脑前时,我会进一步整理。 我明白了。这个答案是正确的,可以进一步改进。以上是关于使用 jQuery 模糊函数从输入字段返回值的主要内容,如果未能解决你的问题,请参考以下文章
Java程序如何模糊匹配access数据库,然后access返回一个相应值