我正在尝试为我正在开发的网站制作“选择与会者”列表,但已经到了卡住的地步。
目前,您可以从下拉列表中选择选项,这将显示名称并使用这些值填充输入字段(稍后我将使用这些值将这些值发布到数据库)。
我遇到的问题是,从列表中删除名称时,它也不会从字段值中删除。
基本上,当您删除其中一个名称时,我希望它从表单中取出该值,value
并且附加;
也被删除。
HTML
<select name="attendees" class="attendees">
<option value="" disabled="disabled" selected="selected">Please Select Attendees</option>
<option value="12" class="12">Name 1</option>
<option value="13" class="13">Name 2</option>
<option value="14" class="14">Name 3</option>
</select>
<div class="attendeesList" style="width: 370px;">
<input type="text" name="theAttendees" class="theAttendees" value="" style="width: 370px;" />
</div>
jQuery
(function($) {
$('.attendees').change(
function() {
var theSelect = $('.attendees option:selected');
getName = theSelect.text();
getClass = theSelect.val();
theAttendees = $('input.theAttendees').val();
if (theSelect.hasClass('noMore')) {
$('span.'+ getClass).animate({"color":"red"}, 100);
setTimeout(function() {$('span.'+ getClass).animate({"color":"#000"}, 500)}, 1000) ;
} else {
$('.attendeesList').append('<span class="'+ getClass +'">' + getName + '<a href="#" id="d" class="'+getClass+'"><img src="images/iconDelete.png" style="float:right"></a></span><br class="'+ getClass +'"/>');
theSelect.addClass('noMore');
$('input.theAttendees').val(theAttendees + ' ' + getName + ';');
}
});
}(jQuery));
(function($) {
$('div.attendeesList').on('click', 'a#d', function() {
var hrefSpan = $(this).parent();
classID = $(this).attr('class');
getName = $('.attendees option.'+ classID).text();
hrefSpan.remove();
$('br.'+ classID).remove();
if ($('.attendees option.'+ classID).hasClass('noMore')) {
$('.attendees option.'+ classID).removeClass('noMore');
}
});
}(jQuery));
我很欣赏它可能不是最容易阅读的代码,并且可能不如它所能做到的那么好,但我正在学习 jQuery 并尝试尽可能多地使用它,这是功能性的,所以我可以努力改进它一旦它工作。如果您想让我知道我的代码可以在哪里优化,我也将不胜感激!
谢谢!