我正在使用codeigniter。我有简单的form_dropdown()。我想为我的下拉列表执行onchange()函数。
我将获得通过JavaScript选择的字符串。
这是我的代码但不起作用
$js ="onChange=message()";
echo "<script type=\"text/javascript\" > function message(){ var no=document.getElementById('name').value;
alert(sr);
}
</script>";
echo form_dropdown('name',$data,'large',$js);
答案 0 :(得分:0)
form_dropdown不会自动向元素添加id,因此getElementById
将无法按写入方式工作。
另外,为了理解,指南并没有很好地解释第四个参数。调用它$js
会产生误导,因为它会将您提供的任何内容添加到属性列表中。
将一行代码更改为此(注意onChange函数周围的引号):
$js = 'id = "name" onChange="message();"';
确保在输出后查看源代码以验证它是否也输出了有效的html。
此外,在Chrome上,F12会调出您的开发人员工具,点击esc键会切换显示您的JavaScript控制台,如果一切都没有按计划进行,这将有希望给您带来有意义的错误。
编辑:
看起来你正在设置一个名为no
的变量的值,但是警告一个名为sr
的变量,似乎没有被定义。
答案 1 :(得分:0)
你也可以简单地从函数调用中传递ref,而不是从document.getElementById()
获取值,当你在select dropdowm中添加id时它会起作用
试试这段代码
<?php
echo "<script type=\"text/javascript\" >
function message(element){
var no=element.value;
alert(no);
}
</script>";
echo form_dropdown('name',$data,'large', 'onChange="message(this);"');
?>