繁体   English   中英

表单下拉onchange事件不起作用

[英]Form dropdown onchange event not working

我是Codeigniter的新手,并且我有一个form_dropdown,我编写了一个javascript函数来根据下拉列表中的选定值设置文本框值。 这是我的代码,但是不起作用:

<?php echo form_dropdown('allalerts', $alert_list, set_value('allalerts', $alert_list), array('id' => 'allalerts','class' => 'selectpicker', 'onchange' => 'set_alert_name($(this))')); ?>

<script type="text/javascript">
function set_alert_name(data) {
    document.getElementById ($alertname['alertname']).value = data.value;
}   
</script>   

是这样做的正确方法还是另一种方法? 我尝试了以下jquery代码,但也无法正常工作:

<?php echo form_dropdown('allalerts', $alert_list, set_value('allalerts', $alert_list), array('id' => 'allalerts','class' => 'selectpicker')); ?>

<script type="text/javascript">
$(document).ready(function () {
    $("#allalerts").change(function () {
        var selectedText2 =  $("#allalerts option:selected").text();
        $('[name="alertname"]').val(selectedText2);
    });
});
</script>   

有很多不同的方法可以做到这一点。

$("#allalerts").change(function () {
    var selectedText2 = this.value;
   $('[name="alertname"]').val(selectedText2);
});

// Second Technique.
$(function() {
    $("#allalerts").change(function() {
         var selectedText2 = $('option:selected', this).text();
         $('[name="alertname"]').val(selectedText2);
    });
});

试试这个代码:

<?php echo form_dropdown('allalerts', $alert_list, set_value('allalerts', $alert_list), array('id' => 'allalerts', 'class' => 'selectpicker')); ?>

<input type="text" name="alert_name" value="">

<script type="text/javascript">
$(document).ready(function(){
    $(document).on('change','#allalerts',function(){
        var temp_name = $("select[name='allalerts'] option:selected").text();
        $("input[name='alert_name']").val(temp_name);
    });
});
</script>

请注意,form_dropdown中的“ onchange”数组已删除,因此事件处理程序在jQuery中进行了说明。

请注意$(documnt).on('change','#allalerts',function(){这是针对动态添加到网页中的DOM的,否则jQuery将无法识别它。

该代码对我有用:

<?php echo form_dropdown('allalerts', $alert_list, set_value('allalerts', $alert_list), array('id' => 'allalerts','class' => 'selectpicker', 'onchange'=>'changeAlert($(this));')); ?>

<script type="text/javascript">
function changeAlert(obj)
{
    var selectedText = obj.children(':selected').text();
    $('[name="alertname"]').val(selectedText);
}
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM