У меня есть MULTIPLE divs, где каждый div состоит из текста, а затем выпадающего списка, за которым следует текстовое поле, например:
<div>
Punch <select>
<option>Hawaiin Punch</option>
<option>Vodka</option>
<select/>
<input type="text" id="textfield_2"></input>
</div>
Мой полный пример: http://jsfiddle.net/HsF2Y/3/
Выполните следующие действия:
Я хочу слушать событие, отличное от "изменения", так что шаг 3 вызывает добавление "Водки" снова. Итак, после всех трех шагов мое текстовое поле должно показать текст: "лимоны, водка, водка". Может кто-нибудь исправить код на скрипке, пожалуйста? Благодарю.
Если вы добавите пустой параметр для каждого выбора, вы можете сделать что-то вроде этого:
$("select.choices").change(function () {
if (this.value) {
$(this).next().trigger('doUpdate', [this.value]);
/* reset after selections updated*/
this.value = "";
}
});
$('.selections').each(function () { /* loop each so data array unique*/
$(this).data('selections', []).on('doUpdate', function (evt, newVal) {
var data = $(this).data('selections')
data.push(newVal)
this.value= data.join();
}).change(function(){
/* for manually added store new array*/
var arr= $.trim(this.value).split(',');
$(this).data('selections',arr)
});
});
Вы пытались с click
вместо change
?