2017-06-17 44 views
0

在我的輸入上,我有一個函數可以在用戶點擊時刪除輸入的值。 對此,沒問題。模糊功能,設置最後一個值

我正試圖編寫一個函數來在輸入字段中「重寫」,最後一個已知的值,如果用戶沒有填充模糊。

一個輸入使用下面的代碼工作正常,當我有:

$("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

首先你需要堅持你的價值觀。爲此,我創建了一個對象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" />

+0

謝謝您的回答蘇倫,這是行不通的,因爲我有很多的代碼,但我明白了一些事情,這將是有用 – Etienne

+0

我給你一個共享的邏輯如何做到這一點 –

+0

所以,我明白了,非常感謝Suren;) 祝你有美好的一天! – Etienne