我有一个非常复杂的(对我来说!)表单验证。我做了所有的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']?>"
。
如何解决这个问题?
答案 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。