2011-03-17 38 views
0

我在我的视图页面中输入了一个下面的代码,用于自动填充选择框,其中包含会话中学生的名字和姓氏,并自动填充名称文本框中的值从frop down列表中选择的选项。但是从列表中选择选项时不会发生名称的自动填充。请帮助我解决此问题。CakePHP中选择框的onchange事件的问题

$javascript->link('jquery-1.5.1.min.js'); 
$javascript->link(array('jquery', 'form')); 
$max_students = $this->Session->read('student_count'); 
$student_name = array(); 
$student_name[] = "-- Select --"; 
for($i=0;$i<$max_students;$i++) 
{ 

    $student_first_name  = $this->Session->read('Student.'.$i.'.FirstName'); 
    $student_last_name =$this->Session->read('Student.'.$i.'.LastName'); 
    $student_name[]   = ($student_first_name." ".$student_last_name); 
} 


$selectDomId = $this->Form->domId('students'); 
    $firstnameDomId = $this->Form->domId('Name'); 

    $this->Html->scriptBlock(" 
     jQuery(function($){ 
     $('#{$selectDomId}').change(function(event){ 
      $('#{$firstnameDomId}').val($(this).val()); 
      }); 
     }); 
    ",array('inline'=>false)); 


echo $this->Form->create('Contact',array('controller'=>'contacts','action'=>'addcontact')); 
echo "<strong>Same As</strong>"; 
echo $this->Form->select('students',$student_name,$this->Form->domId(array(),'students')); 
echo $this->Form->input('Name'); 

回答

0

我真的没有太多的答案给你 - 但你可以使用Firebug或某种等价开发工具,以找出是否有当您更改值抛出任何JavaScript错误select控制?您还应该查看为该页面生成的HTML源代码,以确保正确生成了脚本代码。

尝试插入你的JavaScript函数内部调试语句,以确保通话发生过:

$this->Html->scriptBlock(" 
    jQuery(function($){ 
    $('#{$selectDomId}').change(function(event){ 
     $('#{$firstnameDomId}').val($(this).val()); 
    }); 
    alert('Test'); 
    }); 
",array('inline'=>false));