Существует два вида «хинтингового» кода (более известный как водяной знак или заполнитель текста): те, которые заменяют значение поля, и те, которые размещают какой-то элемент над вводом, чтобы выглядеть так, как будто текст внутривходные данные.
Я предполагаю, что вы используете первый тип, поэтому одно простое (и лучшее) решение состоит в том, чтобы полностью исключить эти виды и переключиться на плагин, который использует второй метод.Есть много плагинов, которые работают таким образом, например этот , просто обязательно прочитайте, как они работают.
Если изменение кода хинтинга не вариант, то у вас естьдве другие альтернативы.Оба не идеальны, но, возможно, один из них подойдет вам больше:
Очистить значения при отправке
В пределах кода подсказки привязать к событию submit
формыи циклически переберите все входные данные, чтобы очистить любой, имеющий то же значение, что и подсказка.
Проблема с этим методом заключается в том, что должен быть выполнен до проверкиПлагин инициализирован.Это также не будет работать для проверки полей при вводе.Вам также придется проверить входные данные еще раз после проверки, чтобы вернуть текст подсказки.
Overide .val ()
Поскольку плагин проверки использует jQuery, выможет переопределить функцию .val()
jQuery для возврата ''
, если значение равно подсказке:
var oldVal = $.fn.val;
$.fn.val = function () {
var returnVal = oldVal.call(this);
if (returnVal == hintVal) returnVal = '';
return returnVal;
};
Очевидным недостатком этого является то, что плагин всегда должен использовать .val()
для получения входных значений.