我在视图页面中编写了以下代码
<script type="text/javascript">
function filldetails()
{
document.getElementById('FirstName').value = "hjshjsh";
}
</script>
echo $this->Form->select('students',$student_name,array('onchange' =>filldetails()));
但我收到错误消息
call to undefined function filldetails()
如何解决此错误?
答案 0 :(得分:5)
应为'onchange' => 'filldetails()'
答案 1 :(得分:0)
除非你的项目有一个特定的理由要避免使用JS框架,否则你将通过使用jQuery而不是纯Javascript来避免很多长期的麻烦。
重写你的观点:
<?php
$selectDomId = $this->Form->domId('students');
$firstnameDomId = $this->Form->domId('Student.first_name');
$this->Html->scriptBlock("
jQuery(function($){
$('#{$selectDomId}').change(function(event){
$('#{$firstnameDomId}').val( $(this).val() );
});
});
",array('inline'=>false));
?>
<?php echo $this->Form->select('students',$student_name,$this->Form->domId(array(),'students'))?>
<?php echo $this->Form->input('Student.first_name')?>
jQuery负责处理onChange
事件处理程序,因此它不会混淆你的HTML,只需挂钩你的下拉菜单的更改事件。
使用Helper::domId
意味着您不必担心 CakePHP的帮助者如何生成id
属性,这是可靠性和可维护性的净赢。 / p>