我有输入字段,我想在输入失去焦点时获取输入值(如果输入为空)或只是获取输入值(如果输入不为空)
我的输入
<input type="text" id="title" value="Value test" kl_virtual_keyboard_secure_input="on">
我试试
var input_length=$.trim($("#title").val());
function blurTitleValue() {
$('#title').blur(function() {
var str = $.trim($("#title").val());
var str_ref = str.substring(0,3);
return str_ref;
});
}
function TitleValue() {
var str = $.trim($("#title").val());;
var str_ref = str.substring(0,3);
return str_ref;
}
if(input_length.length>0)
{
TitleValue();
}
else{
blurTitleValue();
}
alert(str_ref);
但我无法获得str_ref值
答案 0 :(得分:1)
如果您返回str_def
,则不会将父范围的变量str_def
设置为其值,您只是因为没有将其分配给任何内容而丢失了您的值。您需要将返回值保存到变量中。
在JSFiddle上试用。
<script>
var input_length = $.trim($("#title").val());
var str_ref;
function blurTitleValue() {
return $('#title').blur(function () {
var str = $.trim($("#title").val());
var str_ref1 = str.substring(0, 3);
str_ref = str_ref1;
});
}
function TitleValue() {
var str = $.trim($("#title").val());
;
var str_ref1 = str.substring(0, 3);
return str_ref1;
}
if (input_length.length > 0) {
str_ref = TitleValue();
} else {
blurTitleValue();
}
alert(str_ref);
</script>
答案 1 :(得分:0)
您想要的是全局 str_ref 变量。在声明函数内部的str_ref之前,您需要全局声明它,然后删除 var
。它将变量的范围扩展到函数,当尝试访问 str_ref 时,您将尝试访问全局变量(在您的情况下,未定义)。
这是固定代码:
var str_ref;
var input_length = $.trim($("#title").val());
function blurTitleValue() {
$('#title').blur(function() {
var str = $.trim($("#title").val());
str_ref = str.substring(0, 3);
return str_ref;
});
}
function TitleValue() {
var str = $.trim($("#title").val());;
str_ref = str.substring(0, 3);
return str_ref;
}
if (input_length.length > 0) {
TitleValue();
} else {
blurTitleValue();
}
alert(str_ref);
和JSFiddle。
还不清楚你试图用blurTitleValue()
做什么。无论哪种方式,您都无法访问新的 str_ref ,因为它只会在blur
上更改。
我还建议缓存你的jQuery元素。
而不是总是查询$('#title')
,而是声明全局var $title = $('#title');
并在之后使用它。这是最佳做法。