选择倍数上的Onchange

时间:2017-09-06 08:57:48

标签: javascript jquery forms symfony

我有一个选择,用户可以选择多项选择:

<select id="mybundle_evenement_name" class="form-control" name="mybundle_evenement[name][]" required="required" multiple="multiple" >
    <option value="1">name1</option>
    <option value="2">name2</option>
    //...
</select>

以Symfony的形式生成。

当用户在选择中选择一个选项时,我想要一个事件。

所以我试过了:

<script type="text/javascript">
    $(function () {
        var $zone = $('#mybundle_evenement_name');
        $zone.onclick(function () {
            alert('test');
        });
    });
</script>



<script type="text/javascript">
    var $zone = $('#mybundle_evenement_name');
    $zone.onclick(function () {
        alert('test');
    });
</script>

我也尝试使用onchange()代替onclick()

没有任何事情发生......

7 个答案:

答案 0 :(得分:3)

在文档ready函数中注册事件处理程序。它是在页面加载后调用的。此外,您在事件处理函数名称中有错误,请在不使用on的情况下使用它:.change(.click(

$(document).ready(function() {
    $('#mybundle_evenement_name').change(function() {
        alert('test');
    });
});

答案 1 :(得分:1)

尝试在HTML中选择一个onchange行为,如下所示:

<select id="mybundle_evenement_name" class="form-control" name="mybundle_evenement[name][]" required="required" multiple="multiple" onchange="alertMe()" >
    <option value="1">name1</option>
    <option value="2">name2</option>
    //...
</select>

然后:

<script>
    function alertMe(){
        alert('test');
    }
</script>

另外,请确保在所有脚本之前包含jQuery,并且不指定type="text/javascript",因为它没有必要,我不完全确定,但它实际上可能是您的问题的根源。

实际上,之前的所有内容都可以缩短为:

<select id="mybundle_evenement_name" class="form-control" name="mybundle_evenement[name][]" required="required" multiple="multiple" onchange="alert('test');" >
        <option value="1">name1</option>
        <option value="2">name2</option>
        //...
    </select>

它确实有效。

答案 2 :(得分:1)

您的change事件应该在jquery中包含全局function

$(function(){
  $('#mybundle_evenement_name').change(function(){
    alert("you selected : "+this.value);
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mybundle_evenement_name" class="form-control" name="mybundle_evenement[name][]" required="required" multiple="multiple" >
    <option value="1">name1</option>
    <option value="2">name2</option>
    
</select>

答案 3 :(得分:1)

请参阅:https://api.jquery.com/change/

应该改变,而不是onChange。所以你的代码应该是:

$(function(){
  $('#mybundle_evenement_name').change(function(){
    alert('test');
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mybundle_evenement_name" class="form-control" name="mybundle_evenement[name][]" required="required" multiple="multiple" >
    <option value="1">name1</option>
    <option value="2">name2</option>
    
</select>

答案 4 :(得分:0)

这对我有用。你可以使用它。

settings.startColor = new Color(x, 0f, 0f);

表示参考:https://jsfiddle.net/s5hoxybz/1/

答案 5 :(得分:0)

        $(document).on("change", "#mybundle_evenement_name", function () {
            //...
        });

完成了这项工作。不知道为什么其他解决方案不起作用......

答案 6 :(得分:0)

$(document).ready(function(){
$("#mybundle_evenement_name").change(function(){
$(this).html(alert('test'+ this.value));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mybundle_evenement_name" class="form-control" name="mybundle_evenement[name][]" required="required" multiple="multiple" >
    <option value="1">name1</option>
    <option value="2">name2</option>
    //...
</select>