【发布时间】:2012-02-10 13:36:41
【问题描述】:
在 CakePHP 2.0 中使用 JsHelper 进行实验,我得到了一个 Request 方法,用 AJAX 调用的结果更新表单字段的值 - 到目前为止,一切都很好。但是,在检查表单字段时,它说:
<input type="hidden" id="JobsPartUnitcost" name="data[JobsPart][unitcost]">5.55</input>
但是当我复制它并第一次将其粘贴在上面时,它说
<input type="hidden" id="JobsPartUnitcost" name="data[JobsPart][unitcost]"></input>
当我提交表单时,该值为空。为什么浏览器显示该值,但底层 DOM 没有注册它?
使用 Mac/Safari、CakePHP 2.0、JQuery
编辑 这里要求的是表单数据转储
Array ( [JobsPart] => Array ( [job_id] => 1 [company_id] => 4 [part_id] => 2 [qty] => 3 [unitcost] => ) )
这里是 AJAX 代码
$this->Js->get('#JobsPartPartId')->event('change',
$this->Js->request(
array(
'controller'=>'JobsParts',
'action'=>'getPart'
),
array(
'update'=>'#JobsPartUnitcost',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
'isForm' => false,
'inline' => true
))
)
)
);
【问题讨论】:
-
你是如何从隐藏中获取价值的,你能通过你的ajax帖子代码吗?
-
复制/粘贴子问题可能与浏览器如何显示页面源有关 - 大多数浏览器(不能专门与 safari 对话)会显示下载的原始页面源,而不是“当前状态”源,当您执行“查看源”时。在没有更多信息的情况下无法回答其他问题 - 注意发布设置表单的 JS,以及发送到服务器的内容的转储?
-
好的。我找到了一种解决方法,但除非没有其他人找到答案,否则我不会将其发布为答案。在我的静态视图中,我现在只有
输入字段所在的位置。我的 Ajax 调用现在更新 '#part' 并且我的动态视图(由控制器 ajax 操作调用的视图)现在输出整个字段 - Form->input('unitcost', array('type ' => '文本', '值' => $part['Part']['costamount'])); ?>。丑陋但有效。
标签: javascript ajax forms cakephp