Почему это поле поиска не выделяет весь текст по клику? - PullRequest
0 голосов
/ 31 мая 2009

Вы можете увидеть соответствующее поле поиска по адресу: http://www.trailbehind.com. Если пользователь пытается выполнить поиск дважды, ему нужно нажать клавишу Backspace, чтобы очистить текст, но я хочу выделить весь текст дважды нажмите, какие входы должны делать по умолчанию. Почему не против?

Когда пользователь впервые щелкает, я очищаю ввод следующим образом:

input.onclick = clearInitialValue;

function clearInitialValue() { 
  this.value = ""; 
  this.onclick = 'return True';
  this.style.color = "black";
}

Еще одна вещь, которая может вам понадобиться, чтобы помочь мне решить эту загадку, - это то, что я использовал ввод для создания автозаполнения YUI: http://developer.yahoo.com/yui/autocomplete/,, но я не могу найти в документах ничего, что объясняет, почему двойной щелчок ввод для выбора текста не будет работать.

Ответы [ 3 ]

1 голос
/ 31 мая 2009

имейте в виду, что вы можете иметь только один метод для каждого события javascript, поэтому в своем примере вы запускаете событие onclick, убедитесь, что вы не делаете это снова.

, чтобы иметь больше, вам нужно использовать прослушиватель событий.

var oDiv = document.getElementById('thediv');

oDiv.addEventListener('click', function (e) {
    // your method here
}, true);

или просто

oDiv.addEventListener('click', clearInitialValue, true);

вы предполагаете, что используете YUI, поэтому код будет выглядеть примерно так:

 YAHOO.util.Event.on(oDiv, "click", clearInitialValue); 

не то, что отвечает на ваш вопрос напрямую, но имейте в виду при работе с событиями JavaScript.


чтобы ответить на ваш вопрос, ваш код работает отлично ... посмотрите код, работающий на JSBIN

Вы можете добавить / редактировать URL, чтобы редактировать его.

1 голос
/ 31 мая 2009

вместо вашего

  this.onclick = 'return True';

попробовать

  this.onclick = 'this.select(); return true';

Это выберет текст в поле.

Подумайте об этом вместо фокуса.

Если это не так, как хотелось бы, попробуйте отключить автозаполнение YUI, чтобы проверить, не мешает ли это. Я видел это.

Если этого не произойдет, упростите еще больше, внедрив его на чистой странице без других JS, прежде чем вставлять его в карту Google.

Надеюсь, это поможет.

0 голосов
/ 31 мая 2009

Я вижу одну вещь, которая может быть проблемой, у вас есть

this.onclick = 'return True';

попробуй

this.onclick = 'return true';

javascript чувствителен к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...