单击选择元素解决方案上的事件

时间:2014-08-07 14:41:22

标签: jquery

我正在使用一个选择字段来添加(点击)东西到textarea元素,因为'click'事件不适用于选择字段,我正在使用jQuery'更改',但这给了我以下问题,一旦点击该选项,只有在选择了新选项后才能再次单击此选项。

有没有办法在选择字段上使用'click'事件方式,因为我不想构建一个假的选择字段。

-

变化:

$('.select').change(function(e){
    alert($(this).val());
});

3 个答案:

答案 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
})