Как вы фиксируете событие для URL-адреса, добавленного в поле ввода

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть веб-форма с текстовым полем ввода для URL-адреса. Когда я перетаскиваю URL-адрес из адресной строки браузера (я использую Firefox, но я бы хотел, чтобы он работал и в других, если возможно) в поле ввода, он вставляет текст URL в любой уже существующий текст. Я хочу, чтобы URL-адрес перезаписывал любой существующий текст вместо этого.

Я думаю, я мог бы захватить какое-нибудь событие и упростить любой существующий текст перед добавлением удаляемого текста.

Если это возможно настроить с помощью jQuery, это хорошо, в противном случае в простом javascript.

Редактировать

Кажется, это работает:

 $("#myinput").bind("drop", function(e) {  
      e.currentTarget.value = "";  
      return true;  
});
  

Я не уверен, какие браузеры поддерживают это событие, но если это самые современные, то все должно быть в порядке.

Ответ №1:

Если вы ориентируетесь на ie, Firefox 3.5 , safari или chrome, событие ondrop должно сработать. Вы можете либо использовать форму, предоставленную Dr.Molle, либо установить обработчик ondrop с помощью javascript.

 //for ie must use this syntax or the html version
document.getElementById('myInput').ondrop = function(e){
    //doesn't have to be jquery here
    //using window.location because I can't test e.dataTransfer.getData('Text') right now
    $(this).val(window.location);
}
  

Комментарии:

1. Обратите внимание, что это будет работать только для получения окна. очевидно, что местоположение. Если вы хотите заменить содержимое перетаскиваемого текста, загляните в объект event dataTransfer.

2. Кажется, это работает: $(«#myinput»).bind(«drop», function(e) { e.currentTarget.value = «»; возвращает true; });

Ответ №2:

Происходит запуск ondrop-события:

 <input ondrop="this.value=''">
  

Комментарии:

1. Итак, у меня должна быть совершенно особая FF-версия, потому что она работает для меня (4.0.1)

2. @Andy E Если вы пытаетесь использовать jsfiddle, это не сработает из-за использования ими iframes и проблем с перекрестным происхождением.