我想知道是否有一种方法可以在类型文本输入中显示与发送给PHP的值不同的值。

例如,假设您有:

显示John的<input type="text" value="John">

我可以为用户将值更改为“Doe”,但对于php保留为“John”吗?

我可以使用$.attr('value')$.val()之间的区别来实现这一点吗?

我进行了一些测试,看来我将不得不直接在 Controller 中将其逆转。还有其他解决方案吗?

这是一个小jSFiddle可以玩。

最佳答案

一个奇怪的请求要确定,但是...

您不能更改字段的值,而只能执行简单的表单提交。该字段将忠实地发送其中的任何内容。有几种黑客方法可以解决这个问题

选项1-隐藏字段

因此,创建一个字段,对其进行disable编码,然后添加一个隐藏字段。禁用的字段永远不会成功,尽管用户将无法更改字段值,并且许多浏览器会自动更改字段的样式

<input type="text" name="name" value="John" disabled>
<input type="hidden" name="name" value="Doe">

选项2-更改提交时的值

如前所述,提交表单时,您始终可以更改值。下面的监听器将捕获使用jQuery提交的表单,因为您是这样询问的
$("form").on( "submit", function( event ) {
  event.preventDefault();
  $('input[name="name"]').val('Doe');
  $("form").submit();
});

10-01 01:35