2015-06-16 4 views
4

У меня есть форма с двумя полями выбора, для которых я использую select2 для соответствия & tokenize того, что когда-либо было вставлено в поле. Мне нужно преобразовать список входов, разделенных новой строкой, в список, разделенный пробелом (потому что IE не делает это автоматически).Возможно ли изменение ввода в поле выбора?

У меня есть следующий код, который отлично работает с любым <input> полями:

$('#editor').bind('paste', function (e) { 
      var clipped = window.clipboardData.getData('Text'); 
      clipped = clipped.replace(/(\r\n|\n|\r)/gm, " "); //replace newlines with spaces 
      $(this).val(clipped); 
      alert(clipped); 
      return false; //cancel the pasting event 
     }); 

, но это не похоже на работу, если #editor является <select> поля.

<form method="POST" action="/run" class="ui-widget" onsubmit=" return confirmSubmit(this, 'run',true) "> 
    Editor: 
    <select name="editor" id="editor" multiple style="width: 200px"> 
     <option>ALL</option> 
    </select> 
     <input type="submit" value="Submit"> 
</form> 

любая идея, что не хватает?

+1

Насколько я могу см. IE даже не поддерживает вставку в отдельные поля. – Tomalak

+0

он работает, если у меня есть 'multiple style' и matcher в опции select2. – user3710760

+0

Я не получаю никаких «вставных» событий с помощью select2. Сравните здесь: http://jsfiddle.net/ct5172sk/ – Tomalak

ответ

0

Я не считаю пасту можно на

выберите

обходным может быть:

  • создать невидимую входные данные
  • привязки KeyDown события на поле выбора
  • проверки, если ключ является управляющим ключом
  • если это так, измените фокус на невидимый ввод
  • улавливайте значение там, как только событие вставки сделано на этом входе
  • значение изменения выбора пункта к значению на входе :)

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

  • изменить фокус назад для выбора поля
Смежные вопросы