2017-02-14 9 views
0

В поле ввода задано значение по умолчанию. Значение по умолчанию должно быть удалено при щелчке внутри поля, но если вставка значения пустая и курсор мыши покидает поле, необходимо восстановить значение по умолчанию. Значение по умолчанию должно записываться в базу данных.Поле ввода - удалить значение при событиях onClick и восстановить значение, если не установлено

Например:

Значение по умолчанию: 0

Когда я выхожу на поле ввода и значение является пустым, значение по умолчанию восстанавливается.

<input type="text" onclick="if(this.value == 'value') { this.value = ''; }" value="value" /> 

Как восстановить значение по умолчанию, если какое-либо значение установлено для ввода после нажатия?

Благодаря

+0

Очень сложно понять, о чем вы просите, можно ли пересмотреть/перефразировать этот вопрос (очевидные опечатки вроде 'filed' <->' field' очень раздражают для внимательных читателей)? – Wolf

+0

Я сменил поданный в поле. В чем трудно понять мои фразы? Когда оставьте поле ввода и значение пустое, восстановите значение по умолчанию. – Frankie

+0

Итак, добавьте проверку того, является ли значение «пустым» в условии if ... – CBroe

ответ

1

Просто прикрепите listener к введенному на focus и blur события, как, например сильфона;

var inputToCheck = document.getElementById("inputNum"); 
 
inputToCheck.initialValue = inputToCheck.value || ''; 
 

 
inputToCheck.addEventListener("focus",function(e) { 
 
    this.value == this.initialValue ? this.value = "" : ""; 
 
}); 
 

 
inputToCheck.addEventListener("blur",function(e) { 
 
    this.value == "" ? this.value = this.initialValue : ""; 
 
})
<input type="text" id="inputNum" value="0" />

Другой с JQuery:

var inputToCheck = $("#inputNum"); 
 
inputToCheck.data("initialValue", inputToCheck.val()); 
 

 
inputToCheck.on("focus",function(e) { 
 
    this.value == $(this).data("initialValue") ? this.value = "" : ""; 
 
}).on("blur",function(e) { 
 
    this.value == "" ? this.value = $(this).data("initialValue") : ""; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="inputNum" value="0" />

+1

Хотя это работает с жестко запрограммированным значением по умолчанию (0), было бы неплохо, если бы вы могли улучшить свой ответ, чтобы заставить его работать с каким-либо значением 'value =" "' в предопределенной разметке. – Connum

+0

@Connum Да, я согласен :), исправлено, как вы сказали. –

+0

erm ... редактирование на самом деле не то, что я предложил. Теперь вы просто удалили значение из разметки. Я предложил сохранить значение из разметки, а затем проверить его (вместо жесткокодированного 0). – Connum

0

ли с помощью атрибута заполнитель служит ваше требование ?

Это значение будет отображаться по умолчанию, если поле осталось пустым. Но не отправит его на сервер, когда форма отправлена ​​с полем, поле пуст. Если вы хотите сохранить значение по умолчанию, когда пользователь отправляет форму с пустым введите, напишите обработчик obsubmit для формы, которая устанавливает значение по умолчанию, или реализует его на стороне сервера, чтобы сохранить значение по умолчанию в db, если значение пустое.

+0

Спасибо, но значение placeholder 0 (placeholder = "0") не сохраняется в базе данных – Frankie

+0

Для этого добавьте функцию для отправки формы и установите значение поля по умолчанию, если значение пустое. –