我想在提交时重新格式化HTML表单字段的内容。
例如:用户输入“1.234,56
”(这是此语言环境中数字的有效格式),但我想将值“1234.56
”提交给服务器。
我想听听其他人对此的体验。你是怎么做到的?
我的第一个想法是onSubmit事件,它重新格式化内容。但是,是否有人对此实施有任何经验?
或者也许是一个更好的主意?
Javascript始终可用。如果使用Dojo更容易,我可以使用它。
顺便说一句:它实际上有点复杂,因为我也想重新格式化“模糊”。因此用户输入“1234,56
”(输入格式)。焦点更改时,应重新格式化为“1.234,56
”(显示格式)。但发送到服务器的实际值应为“1234.56
”(机器格式)
在输入格式和显示格式之间进行转换应该很容易,但也许所有这些都可以巧妙地结合起来。
编辑:这不适用于公共网站,因此有关依赖Javascript和类似内容的观点不相关。
答案 0 :(得分:1)
嗯,想到的一个想法可能是独占使用Javascript,并将实际输入的值存储到隐藏字段中。然后捕获文本框的onBlur Javascript事件,以调用根据您的要求格式化值的函数。
最后,在表单提交时,访问隐藏字段中的值,而不是文本框。
答案 1 :(得分:1)
鉴于这些信息,我可能会做以下事情:
模糊处理程序
提交处理程序应该
请记住,无论您做多少客户端验证,您仍然需要进行服务器端验证。但是我会在Javascript中做尽可能多的验证,因为我更愿意让用户知道他的表单值将会失败,而不必先对服务器进行验证。
此外,我可能会更改服务器端操作,以便能够处理许多区域设置中的金额。这会让我在Javascript中的提交处理程序上有更多的摆动空间。
答案 2 :(得分:0)
你问这个问题的方式,你基本上想要在客户端验证,在任何情况下都应该是禁止的。只需提交数字并使用特定于语言环境的处理对服务器端进行验证。如果您想立即获得反馈,请使用AJAX,但要进行验证服务器端 - 您可以使用AJAX请求执行onBlur()。