我正在使用一个选择字段来添加(点击)东西到textarea元素,因为'click'事件不适用于选择字段,我正在使用jQuery'更改',但这给了我以下问题,一旦点击该选项,只有在选择了新选项后才能再次单击此选项。
有没有办法在选择字段上使用'click'事件方式,因为我不想构建一个假的选择字段。
-
变化:
$('.select').change(function(e){
alert($(this).val());
});
答案 0 :(得分:1)
$(".select").change(function(e){
// I remove the selected attribute on the selected options
$(this).find(":selected")
.attr("selected", false)
// Then I apply a fake selection class: the options will look as selected
.addClass(toLookLikeSelected);
});
这段代码(我没有测试过)的目的是在你点击它时取消选择一个选项:因为它获得(选中然后)未被选中,你可以再次点击它! 那么,现在您可以通过以下方式获取所选选项:
$("select option." + toLookLikeSelected);
我已经在这个想法上构建了一个jQuery插件:http://nerdstuckathome.wordpress.com/2012/08/10/multi-select-avoiding-ctrl-button/
我希望这有帮助。
卢卡
答案 1 :(得分:0)
试试这个:
HTML:
<select class="select">
<option value="t1">test1</option>
<option value="t2">test2</option>
<option value="t3">test3</option>
<option value="t4">test4</option>
<option value="t5">test5</option>
</select>
JQUERY:
var clicked_once=false;
$('.select').click(function (e) {
if(clicked_once){
alert($(this).val());
}
clicked_once=!clicked_once;
});
答案 2 :(得分:0)
试过这个解决方案......在Chrome上为我工作。应该在其他浏览器上进行测试:
<强> HTML 强>
<select>
<option></option>
<option>a</option>
<option>b</option>
<option>c</option>
</select>
<强>的Javascript 强>
$("select").change(function () {
alert("Append this value to textarea: "+$(this).val());
$(this).val(""); //reset the <select> value to accept multiple repeated values
})