2016-03-05 4 views
0

У меня есть несколько полей ввода со значениями, динамически вставленными. Ниже упрощенный пример:onBlur - восстановить входные значения после очистки по фокусу

<input id="amount1" type="number" onfocus="" oninput="update()" 
<input id="amount2" type="number" onfocus="" oninput="update()" 
<input id="amount3" type="number" onfocus="" oninput="update()" 

Значения вставляются с помощью:

document.getElementById("amount1").value = Amount1; 
document.getElementById("amount2").value = Amount2; 
document.getElementById("amount3").value = Amount3; 

После того, как пользователь нажимает на поле ввода, значение сбрасывается, но если ничего не введено, то я хотел бы ONBLUR восстановить Значение. Не удалось найти решение в Javascript или JQuery.

+0

Похоже, что вы хотите заполнить – adeneo

ответ

0

Вы можете сохранить значение в атрибуте data- элемента.

<input id="amount1" type="number" onfocus="focus(event)" oninput="update()" onblur="blur(event)"> 

магазин исходное значение:

function focus(e) { 
    var elm = $(e.target); 
    elm.data('orig-value', elm.val()); 
    elm.val(''); 
} 

Затем восстановить значение на onblur события:

function blur(e) { 
    var elm = $(e.target); 
    if (!elm.val()) { 
     elm.val(elm.data('orig-value')); 
    } 
} 
+0

Martin, спасибо, что ответ! Я поставил код в скрипке, но он, похоже, не ведет себя так, как ожидалось. Поле не очищается от фокусировки. https://jsfiddle.net/8ywj03se/1/ – dean2020

+0

Вам нужно прямо сказать jsfiddle, что вы используете jQuery, и он будет содержать его для вас. Смотрите: https://jsfiddle.net/4dgkspt9/1/ – martin

1
<input id="amount1" placeholder="Amount1" type="number" onfocus="this.placeholder = '';" onblur="this.placeholder='Amount1'" oninput="update()"/> 
<input id="amount2" placeholder="Amount2"type="number" onfocus="this.placeholder = '';" onblur="this.placeholder='Amount2'"oninput="update()"/> 
<input id="amount3" placeholder="Amount3" type="number" onfocus="this.placeholder = '';" onblur="this.placeholder='Amount3'" oninput="update()"/> 

Просто скопируйте код. он будет работать уверенно

+1

Рошни, спасибо за ваш ответ. Заполнитель не работает для моей ситуации, так как мне нужно выполнять вычисления со значениями. – dean2020

+0

Уточните свой вопрос, чтобы я мог помочь вам лучше –

+0

Рошни, используя скрипт https://jsfiddle.net/8ywj03se/1 (с кодом Мартина от ответа выше) Я бы хотел, чтобы следующее произошло. Когда пользователь нажимает на поле ввода, поле должно очищаться, но когда пользователь ничего не вводит и не удаляется от поля, исходное значение должно быть восстановлено. Значения ввода генерируются динамически, в зависимости от того, какие пользователи входят в другие области моего приложения. – dean2020