Как не получить значение по умолчанию для поля ввода - PullRequest
0 голосов
/ 01 марта 2012

Я хватаю значение поля ввода и передаю URL в виде строки запроса.Я не хочу получать значение по умолчанию "Введите ключевые слова (адрес ....), которое управляется, чтобы показать или скрыть следующее:

    //**onClick and OnLostFocus (focus and blur) events on textareas and input textboxes**
   $('input[type="text"], textarea').focus(function () {
        defaultText = $(this).val();
        $(this).val('');
    });
    $('input[type="text"], textarea').blur(function () {
        if ($(this).val() == "") {
            $(this).val(defaultText);
        }
    }); 


<input name="KeywordBox" class="BasicSearchInputBox" type="text" size="300" value="Enter Keywords (address,city and state OR zipcode)"/> 

Как не захватить текст по умолчанию, а только пользовательский ввод?? в jquery?

Ответы [ 4 ]

1 голос
/ 01 марта 2012

Обычно я добавляю имя класса по умолчанию в поле ввода, а затем очищаю его, когда пользователь вводит. Таким образом, я могу определить, есть ли текст «водяного знака» по умолчанию или пользовательские данные.

0 голосов
/ 01 марта 2012

Вы можете сделать это с чем-то вроде:

function togglePrompt() {
  if (this.value == this.defaultValue) {
    this.value = '';
  } else if (this.value == '') {
    this.value = this.defaultValue;
  }
}

window.onload = function() {
  var el = document.getElementById('inp0');
  el.onfocus = togglePrompt;
  el.onblur = togglePrompt;
}


<input value="Enter text..." id="inp0">
0 голосов
/ 01 марта 2012

Код, который вы указали выше, на самом деле не использует значения по умолчанию (заполнитель). Если кто-то сначала вводит «что-нибудь» в поле, а затем очищает значение из поля, ваш код сбросит его на «что-нибудь» вместо «Ввод ключевых слов ...»

Вам нужен плагин типа http://archive.plugins.jquery.com/project/defaultvalue

<input placeholder="Enter a username…" type="text">
<input placeholder="…and a password" type="password">
<script>
$(' [placeholder] ').defaultValue();
</script>

Если вы действительно хотите написать это самостоятельно, самые простые шаги:

  • Добавить свойство заполнителя в поле ввода
  • onfocus: очистить input.value, если input.value равно input.placeholder
  • onblur: установить input.value для input.placeholder, если input.value пусто
0 голосов
/ 01 марта 2012

Правильный способ сделать это - использовать placeholder и запасной вариант для старых браузеров.
Для вашей текущей проблемы вы можете просто проверить этот текст по умолчанию при получении значения.Что-то вроде:

$('form').submit(function(){
    if (~$('input').val().indexOf(defaultText)) {
        // Not found, do your ajax stuff
    }
});
...