获取输入值和if语句

时间:2016-08-27 10:44:51

标签: javascript jquery

我有输入字段,我想在输入失去焦点时获取输入值(如果输入为空)或只是获取输入值(如果输入不为空)

我的输入

<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值

2 个答案:

答案 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');并在之后使用它。这是最佳做法。