2015-01-19 2 views
-2

Мне нужно перезагрузить раскрывающиеся текстовые поля в событии onClick. Вот мой jsfiddleКак перезагрузить опции выбора тега в событии onClick в Javascript?

HTML

<select id='1' onClick='createOpts(this)'>" + " 
    <option>None</option>" + "</select> 

JS

function createOpts(that) { 
theOptions = "<option>Test</option>"; 
that.find("option").remove().end().append(theOptions); 
} 

Почему это не перезарядить варианты?

+0

Потому что вы пытаетесь использовать jQuery в javascript. Добавьте ссылку на jQuery, затем используйте '$ (that) .find ....' Кстати, вы также не должны запускать идентификаторы элементов с номером, как в вашем 'id = '1'', это технически неверно и может иметь значение некоторый код, который не работает – Rhumborl

+0

Также ваш HTML имеет два '' + "' в нем, которые используются для объединения строк в javascript и ненужных в HTML – rwacarter

ответ

2

Все это способствует к вашей проблеме:

  • Вы не выбрали JQuery в скрипку.
  • createOpts не является глобальным, потому что код запускается в обработчике onLoad.
  • that относится к элементу <select>, вам необходимо передать его jQuery во-первых, например. $(that).find('option')...
1

Здесь несколько вещей не так.

  1. that должен быть селектор JQuery (также необходимо JQuery, предполагая, что у вас есть на вашей странице и просто забыли его в jsfiddle)
  2. Вы пытаетесь объединить строки в HTML
  3. theOptions не инициализируется или объявляется. Когда вы пытаетесь что-то соединить (не определено), вы получите ReferenceError.

Попробуйте это: http://jsfiddle.net/0juop4wp/1/

Смежные вопросы