Подтвердить что ты не робот

Ввод значения поля поля javascript

Я делаю простую форму, и у меня есть этот код, чтобы очистить начальное значение:

JavaScript:

function clearField(input) {
    input.value = "";
};

HTML:

<input name="name" id="name" type="text" value="Name" onfocus="clearField(this);"/>

Но я не хочу, чтобы пользователь заполнил ввод, но снова щелкнул его, и он стирается. Я хочу, чтобы в поле было значение стартера "Имя", только если вход пуст. Заранее благодарю вас!

4b9b3361

Ответ 1

Вот одно решение с jQuery для браузеров, которые не поддерживают атрибут placeholder.

$('[placeholder]').focus(function() {
  var input = $(this);

  if (input.val() == input.attr('placeholder')) {
    input.val('');
    input.removeClass('placeholder');
  }
}).blur(function() {
  var input = $(this);

  if (input.val() == '' || input.val() == input.attr('placeholder')) {
    input.addClass('placeholder');
    input.val(input.attr('placeholder'));
  }
}).blur();

Найдено здесь: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

Ответ 2

делать

<input name="name" id="name" type="text" value="Name" 
   onblur="fillField(this,'Name');" onfocus="clearField(this,'Name');"/>

и js

function fillField(input,val) {
      if(input.value == "")
         input.value=val;
};

function clearField(input,val) {
      if(input.value == val)
         input.value="";
};

Обновление

здесь демонстрационная скрипта того же

Ответ 3

Это может быть то, что вы хотите:

Работает jsFiddle здесь

  • Этот код помещает текстовую строку по умолчанию Enter your name here внутри текстового поля <input> и окрашивает текст в светло-серый.

  • Как только щелкнет окно, текст по умолчанию очищается, а цвет текста установлен на черный.

  • Если текст стирается, текстовая строка по умолчанию заменяется и светло-серый цвет reset.


HTML:

<input id="fname" type="text" />

JQuery/JavaScript:

$(document).ready(function() {

    var curval;
    var fn = $('#fname');
    fn.val('Enter your name here').css({"color":"lightgrey"});

    fn.focus(function() {
        //Upon ENTERING the field
        curval = $(this).val();
        if (curval == 'Enter your name here' || curval == '') {
            $(this).val('');
            $(this).css({"color":"black"});
        }
    }); //END focus()

    fn.blur(function() {
        //Upon LEAVING the field
        curval = $(this).val();
        if (curval != 'Enter your name here' && curval != '') {
            $(this).css({"color":"black"});
        }else{
            fn.val('Enter your name here').css({"color":"lightgrey"});
        }
    }); //END blur()

}); //END document.ready

Ответ 4

HTML:

<input name="name" id="name" type="text" value="Name" onfocus="clearField(this);" onblur="fillField(this);"/>

JS:

function clearField(input) {
  if(input.value=="Name") { //Only clear if value is "Name"
    input.value = "";
  }
}
function fillField(input) {
    if(input.value=="") {
        input.value = "Name";
    }
}