jQuery / js val()覆盖PHP'$ _POST ['field']。怎么修?

时间:2010-09-09 14:47:53

标签: php jquery input

我有一个非常复杂的(对我来说!)表单验证。我做了所有的js,现在我正在做php的东西。

事情是我有可能将部分输入复制到其他类似的部分(收件人 - >付款人)。这一切都是由jQuery首先将$("input.payer_sth").val()复制到$("input.payer_sth"),然后在keyup和blur上一次又一次地完成。

我的所有输入都是这样构建的:

<input id="payer_name" name="payer_name" class="foo" type="text" value="<?=$_POST['payer_name']?>"/>

只要未经jQuery修改的内容在提交和“返回”时都可以正常工作,那么已修改val()的内容在后面都是空的。

对我来说显而易见的是jQuery正在覆盖value="<?=$_POST['field']?>"

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

根据我上面的评论,您可能希望在服务器端而不是客户端执行此操作。

示例(不是最干净的,但你会得到重点)

<input id="payer_name" name="payer_name" class="foo" type="text" value="<?= (!isset($_POST['player_name'])) ? 'Enter your name' : $_POST['payer_name']?>"/>

那么这样做,如果没有设置帖子,它会在字段中输出“输入你的名字”,如果设置了$ _POST,它会将帖子的值输出到字段中。

该构造称为三元运算符:http://php.net/manual/en/language.operators.comparison.php

你可以稍微清理一下,但是这样做可以解决这个问题,并且避免在最终用户不需要JS的情况下使用JavaScript。