我有一个下拉列表,在选择一个值时,会发生一个ajax调用,并且应该填充一个文本框。基本功能正在工作(因为它调用我的控制器中查找值的函数),但我似乎无法获取文本框的值来显示检索到的值。
而不是像这样出现的文本框HTML代码(假设100.00是返回值)
<input name="data['Visit']['room_rate'] type="text" id="VisitRoomRate" value="100.00"></input>
它正在更新(值在输入标签之间,而不是设置为值=“100”)
<input name="data['Visit']['room_rate'] type="text" id="VisitRoomRate">100.00</input>
以下是视图中的代码显示检索到的值
//get_room_rate.ctp
<?php echo $room_rate; ?>
这是ajax调用的代码
$this->Js->get('#VisitRoomId')->event('change',
$this->Js->request(array(
'controller'=>'visits',
'action'=>'getRoomRate'
), array(
'update'=>'#VisitRoomRate',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
'isForm' => false,
'inline' => true
))
))
);
编辑我开始工作了,虽然我不确定这是否是正确的方法
我改变了我的表格,所以房价输入就像这样的div
?><div id="room_rate_update"><?php
echo $this->Form->input('room_rate', array('label' => 'Room Rate (numbers only)'));
?></div><?php
然后在我的视图中显示新的数字,我将其交换到输入,如此
<label for="VisitRoomRate">Room Rate </label>
<input name="data[Visit][room_rate]" maxlength="10" type="text" id="VisitRoomRate" required="required" value="<?php echo $room_rate; ?>"></input>
答案 0 :(得分:0)
不使用'update'选项更新提供的DOM项,而是使用'success'选项命名成功完成ajax调用时触发的回调函数。然后在该函数中更新输入的值而不是文本。 (使用直接的javascript或jquery而不是Cake JS Helper可能会更容易一些)
http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::request