使用 jQuery 模糊函数的输入字段的 Return 值
Return value from input field with the jQuery blur function
目标:用户关注输入字段。用户在输入字段中写入一个值。当用户完成并且输入字段不再处于焦点时,将插入的值保存到名为 '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 变量时,它仍然是 'undefined'。
我是不是漏掉了什么?
您执行的函数是一个异步函数,即它是基于input
触发blur
事件后的时间。您需要在 blur
事件中 return 它:
function returnInputValue() {
var inputValue;
$('.input').blur(function() {
inputValue = $('.input').val();
return inputValue;
});
}
正如某些人所建议的,即使上面的代码也不正确。 inputValue
不工作,因为它总是 returns undefined
。
或者,将其设置为直接访问最后一个 blur
红色值。
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>
这是当前的逻辑:
- 初始化一个具有
undefined
值的变量。
- 绑定一个在未定义的时刻执行的处理程序,变量仍然是
undefined
。
- Return
undefined
值立即
上面的逻辑是错误的,应该纠正。最好的选择是将最终逻辑移动到 blur
处理程序中:
$('.input').blur(function() {
var inputValue = this.value;
// do something with the value
// ...
});
如果需要获取某个时刻的值,查询DOM、select元素并获取它的值。
你可以用。
$(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 我认为这是最简单的方法
目标:用户关注输入字段。用户在输入字段中写入一个值。当用户完成并且输入字段不再处于焦点时,将插入的值保存到名为 '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 变量时,它仍然是 'undefined'。
我是不是漏掉了什么?
您执行的函数是一个异步函数,即它是基于input
触发blur
事件后的时间。您需要在 blur
事件中 return 它:
function returnInputValue() {
var inputValue;
$('.input').blur(function() {
inputValue = $('.input').val();
return inputValue;
});
}
正如某些人所建议的,即使上面的代码也不正确。 inputValue
不工作,因为它总是 returns undefined
。
或者,将其设置为直接访问最后一个 blur
红色值。
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>
这是当前的逻辑:
- 初始化一个具有
undefined
值的变量。 - 绑定一个在未定义的时刻执行的处理程序,变量仍然是
undefined
。 - Return
undefined
值立即
上面的逻辑是错误的,应该纠正。最好的选择是将最终逻辑移动到 blur
处理程序中:
$('.input').blur(function() {
var inputValue = this.value;
// do something with the value
// ...
});
如果需要获取某个时刻的值,查询DOM、select元素并获取它的值。
你可以用。
$(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 我认为这是最简单的方法