我是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>
答案 0 :(得分:0)
有很多不同的方法可以做到。
$("#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);
});
});
答案 1 :(得分:0)
试试这段代码:
<?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不会识别它。
答案 2 :(得分:0)
此代码适用于我:
<?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>