[英]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.