如何触发下拉框的onchange事件?

4

我是一位有用的助手,可以进行文本翻译。

我有一个下拉框,如何触发下拉框的onchange事件并获取所选值。

以下是我目前所做的代码:

<select name="g1" id="select_g1">
        <option value="one">one</option>
        <option value="two">two</option>
        <option value="three">three</option>
    </select>

    <script>
        $(document).ready(function(){

            $("select_g1").change(function(){
                alert("Handled"); // alert is not fired up ...
            });
        });

    </script>

编辑:如果我有多个组合框怎么办:

<select name="g2">
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>

还需要在组合框g2中禁用组合框g1中选择的值。

请问有谁能告诉我代码哪里有问题。


1
你缺少id选择器,请尝试使用 $("#select_g1").change(function(){ - artm
3个回答

4

不要尝试使用.change事件,而是请尝试使用.on事件。

您可以像这样尝试使用:

$('#select_g1').on('change', function (e) {
    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;
    alert(valueSelected);
});

请看这里 -> http://jsfiddle.net/ocrozmkn/

编辑:

针对您编辑后的问题,您可以尝试以下jQuery代码:

$('select').on('change', function (e) {
    $('select option').prop('disabled', false);
    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;    
    alert(valueSelected);
    $("select option:contains('" + valueSelected + "')").attr("disabled","disabled");
});

看这里 ->http://jsfiddle.net/ocrozmkn/1/

多个下拉框的演示

查看此处 -> http://jsfiddle.net/ocrozmkn/6/

希望这可以帮助您!!!


+1 给你。这个工作非常好。我还有一个相关的问题要问。我想将上面的 jQuery 脚本用于多个组合框,即对于两个或更多个组合框使用相同的脚本。此外,如果在第一个组合框中选择了“ A”值,则在其他组合框中禁用它。有没有办法做到这一点...为了澄清,我正在编辑问题。请检查.. - k00989
@k00989 请查看上面编辑过的答案。我相信这就是你要找的! - Satwik Nadkarny
谢谢伙计,你真的帮了我很多。但是如果我有多个具有相同值的组合框怎么办?我想在所有组合框中禁用它们一旦被选中。另外,你能给我推荐一些 jQuery 专业知识的资源吗? - k00989
如果你有多个组合框,这段代码应该可以工作。但是,如果你只想让它在其中几个上工作,你需要稍微调整一下代码。请参见新的演示fiddle。 - Satwik Nadkarny
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/63756/discussion-between-k00989-and-satwik-nadkarny。 - k00989
显示剩余2条评论

0

尝试

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <title>jQuery Autocomplete</title>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script>
    $(document).ready(function(){

        $("#select_g1").on("change",function(){
            alert($(this).val());
        });
    });

</script>
    </head>

    <body>

    <select name="g1" id="select_g1">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
  </select>



    </body>

    </html>

0
尝试类似这样的代码:
<form class="demo">
<select name="g1" id="select_g1">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
</select>
</form>

<script>
 $("#select_g1").change(function () {
    var res = this.value;
    alert(res);
   //OR
    alert(this.value);
    });
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接