【发布时间】:2015-05-18 19:15:49
【问题描述】:
我正在更新我们创建的自定义表单类的验证过程,以便通过在我的表单输入上使用掩码来变得用户友好。
由于文件上传,我们必须通过 HTTP 请求保存表单。
在某些情况下,我们可以使用 AJAX 来保存 FORM,在这些情况下,我创建了一个根据其验证类型修改内容的方法,例如:
01/02/1234 更改为 1234-02-01 123.456,78改为123456.78
问题是当我必须通过 HTTP 请求发送它时。
示例形式:
<form id="formID" action="UrlToCRUDClass" onsubmit="return validateForm(this);">
<input id="datefield" type="text" value="" data-valid="DATE">
</form>
我想知道如何在不更改对最终用户可见的输入值的情况下更改通过 POST 发送的值。
| 1992 年 8 月 4 日 |
我尝试过更改但没有成功:
$('#datefield').attr('value','unmaskedvalue'); //-- Post Value is 08/04/1992
$('#datefield').val('unmaskedvalue'); //-- Changes the visible content for the end-user
$('#datefield').prop('value','unmaskedvalue').attr('value','maskedvalue'); //-- Changes the visible content for the end-user
有没有其他方法不重定向,在发送之前格式化输入并且不更改输入容器内的值?
【问题讨论】:
-
为什么不在发送请求之前在 validateForm 中进行格式化?这样输入中的值不会改变,您仍然通过请求发送格式化数据
-
@epascarello 这是一个普通字段,用户可以修改它的值并且它必须是可见的,我认为这不是一个好的选择,因为我正在使用每个字段超过 30 个的表单,我认为复制一个字段(一个可见的,一个隐藏的)不是一个好的选择。
-
@DhirajBodicherla 这就是我想要做的,但是我将如何更改输入的值并且不更改显示给最终用户的输入值?
-
好吧,如果您希望用户拥有他们想要的东西,并且当表单提交时传递不同的值,那么隐藏字段是最简单的解决方案。您可以替换提交时的值。或者您可以在服务器上进行转换,这似乎是最合乎逻辑和最安全的方式。
-
更改生成表单的类有点复杂,如果我将表单提交更改为中间验证类并将文件信息发送到 crud 类,是否可以保留 $_FILE 信息?
标签: javascript jquery forms