模糊功能,设置最后一个值

时间:2017-06-17 09:23:58

标签: javascript jquery blur

在我的输入上,我有一个函数,当用户点击它时,它会删除输入的值。 为此,没问题。

我正在尝试编写一个函数来在输入字段中“重写”,如果用户没有在模糊处填充它,则是最后一个已知值。

当我只使用以下代码一个输入时,它可以正常工作:

    $("input").blur(function() {

    if ($(this).val().length != 0){}

    else{    
    $("#angleplansup1").val(parameters5.a1);                        
    }
}

);

    parameters5.a1 = Number($('#angleplansup1').val());

问题是我有很多输入,当我把它们全部放掉时它不起作用,因为它们都改变了......(这是合乎逻辑的)。

所以,我正在寻找一种方法来放置最后的已知值。

        $("input").blur(function() {

    if ($(this).val().length != 0){}

    else{    
    $(this).val("the last known value");                        
    }
}

);

我尝试使用document.activeElement,但似乎无法使用模糊。

另一种方法是自动化一种开关或阵列,但我还没有足够的技巧去思考它,我会对此有所了解。 这是我的代码与其他变量,如果它可以帮助。 非常感谢你。 祝你有愉快的一天。

$("input").blur(function() {

    if ($(this).val().length != 0){}

    else{    
        $("#hauteuraxe1").val(parameters5.h);
        $("#angleplansup1").val(parameters5.a1);            
        $("#grandehauteur2").val(parameters5.gh);           
        $("#delta2").val(parameters5.delta);            
        $("#petitehauteur3").val(parameters5.ph);           
        ...
        ..
        .
    }
});



    parameters5.h = Number($('#hauteuraxe1').val());    
    parameters5.a1 = Number($('#angleplansup1').val());
    parameters5.gh = Number($('#grandehauteur2').val());
    parameters5.delta = Number($('#delta2').val());
    parameters5.ph = Number($('#petitehauteur3').val());
    ...
    ..
    .

1 个答案:

答案 0 :(得分:1)

首先,你需要保持你的价值观。为此,我创建了一个对象values,其中包含'id' : 'value"之类的值。如果有值,则每blur后,我会将文本存储在values中。如果blur之后没有值,我会设置前一个。

参见示例

var values = {};

$('input').on('blur', function(e){
  var target = e.currentTarget;
  
  if(target.value){
    values[target.id] = target.value
  } else {
    target.value = values[target.id];
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="a" />
<input id="b" />