Javascript 使用js更新表单字段,但未显示在提交的数据中

Javascript 使用js更新表单字段,但未显示在提交的数据中,javascript,ajax,forms,cakephp,Javascript,Ajax,Forms,Cakephp,通过在CakePHP2.0中使用JsHelper进行实验,我得到了一个请求方法,可以用AJAX调用的结果更新表单字段的值——到目前为止,效果不错。但是,在检查表单字段时,会显示: <input type="hidden" id="JobsPartUnitcost" name="data[JobsPart][unitcost]">5.55</input> 下面是AJAX代码 $this->Js->get('#JobsPartPartId')->event

通过在CakePHP2.0中使用JsHelper进行实验,我得到了一个请求方法,可以用AJAX调用的结果更新表单字段的值——到目前为止,效果不错。但是,在检查表单字段时,会显示:

<input type="hidden" id="JobsPartUnitcost" name="data[JobsPart][unitcost]">5.55</input>
下面是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
            ))
        )
    )
);

您需要设置值属性:

<input type="hidden" value="YOUR VALUE HERE" name="data[Etc][field]" />


您不需要在输入标记中包装值。

您需要设置值属性:

<input type="hidden" value="YOUR VALUE HERE" name="data[Etc][field]" />


您没有在输入标记中包装值。

确定。我找到了一个解决办法,似乎没有其他人找到直接的解决办法


在我的静态视图中,输入字段所在的位置就是
。我的Ajax调用现在更新“
#part
”,我的动态视图(由控制器Ajax操作调用的视图)现在输出整个字段-
。很难看,但很管用。

好的。我找到了一个解决办法,似乎没有其他人找到直接的解决办法

$this->Js->get('#JobsPartPartId')->event('change',
 $this->Js->request(
    array(
        'controller'=>'JobsParts',
        'action'=>'getPart'
    ),
    array(
        'success'=>'$("#JobsPartUnitcost").val(data)',
        'async' => true,
        'method' => 'post',
        'dataExpression'=>true,
        'data'=> $this->Js->serializeForm(array(
            'isForm' => false,
            'inline' => true
        ))
    )
)
在我的静态视图中,输入字段所在的位置就是
。我的Ajax调用现在更新“
#part
”,我的动态视图(由控制器Ajax操作调用的视图)现在输出整个字段-
。虽然很难看,但很管用

$this->Js->get('#JobsPartPartId')->event('change',
 $this->Js->request(
    array(
        'controller'=>'JobsParts',
        'action'=>'getPart'
    ),
    array(
        'success'=>'$("#JobsPartUnitcost").val(data)',
        'async' => true,
        'method' => 'post',
        'dataExpression'=>true,
        'data'=> $this->Js->serializeForm(array(
            'isForm' => false,
            'inline' => true
        ))
    )
)
))


))

你是如何从隐藏中获取值的,你能通过ajax帖子的代码吗?复制/粘贴子问题可能与浏览器如何显示页面源有关-大多数浏览器(不能特别与safari对话)在执行“查看源代码”时会向你显示下载的原始页面源代码,而不是“当前状态”源代码。如果没有更多的信息,你就不能回答另一个问题了。你可以发布设置表单的JS,并转储发送到服务器的内容吗?好的。我已经找到了一个解决方法,但除非其他人找不到,否则我不会将其作为答案发布。在我的静态视图中,我现在只知道输入字段的位置。我的Ajax调用现在更新了“#part”,我的动态视图(由控制器Ajax操作调用的视图)现在输出整个字段-。难看但它能工作。你是如何从隐藏中获得值的,你能通过ajax帖子的代码吗?复制/粘贴子问题可能与浏览器如何显示页面源有关-大多数浏览器(不能特别与safari对话)在你进行搜索时会显示下载的原始页面源,而不是“当前状态”源“查看源“。如果没有更多信息,就不能回答另一个问题-发布设置表单的JS,并转储发送到服务器的内容?好的。我已经找到了一个解决方法,但除非其他人找不到,否则我不会将其作为答案发布。在我的静态视图中,我现在只知道输入字段的位置。我的Ajax调用现在更新了“#part”,我的动态视图(由控制器Ajax操作调用的视图)现在输出整个字段-。难看但它可以工作。将值包装为
value
将在浏览器中作为值呈现,因为它将其视为传统标记。我也这么认为。因此,根据我现在展示的代码,我将如何做到这一点?您如何生成隐藏的输入字段?您需要使用
该值是在页面加载后通过Ajax调用生成的(请参见编辑)。”值“=>”valuehere“不会有什么区别(会吗?)。将值包装为
value
将在浏览器中作为值呈现,因为它将其视为传统标记。我也这么认为。因此,根据我现在展示的代码,我将如何做到这一点?您如何生成隐藏的输入字段?您需要使用
该值是在页面加载后通过Ajax调用生成的(请参见编辑)。”value'=>“valuehere”不会有什么区别(会吗?)。你注意到这行了吗成功“=>”$(“#作业成本”).val(数据)”,你注意到这一行了吗成功“=>”$(“#作业成本”).val(数据),