Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新格式化输入字段_Javascript_Html_Forms - Fatal编程技术网

Javascript 重新格式化输入字段

Javascript 重新格式化输入字段,javascript,html,forms,Javascript,Html,Forms,我想在提交时重新格式化HTML表单字段的内容 例如:用户输入“1.234,56”(这是此区域设置中数字的有效格式),但我想将值“1234.56”提交给服务器 我想听听其他人的经验。你是怎么做到的 我的第一个想法是一个onSubmit事件,它重新格式化了内容。但是有没有人有过这方面的实施经验 还是一个更好的主意 Javascript总是可用的。如果Dojo更简单,我可以用它 顺便说一句:它实际上有点复杂,因为我也想重新格式化“模糊”。因此,用户输入“1234,56”(输入格式)。焦点更改时,应将

我想在提交时重新格式化HTML表单字段的内容

例如:用户输入“
1.234,56
”(这是此区域设置中数字的有效格式),但我想将值“
1234.56
”提交给服务器

我想听听其他人的经验。你是怎么做到的

我的第一个想法是一个onSubmit事件,它重新格式化了内容。但是有没有人有过这方面的实施经验

还是一个更好的主意


Javascript总是可用的。如果Dojo更简单,我可以用它

顺便说一句:它实际上有点复杂,因为我也想重新格式化“模糊”。因此,用户输入“
1234,56
”(输入格式)。焦点更改时,应将其重新格式化为“
1.234,56
”(显示格式)。但发送到服务器的实际值应为“
1234.56
”(机器格式)。
输入格式和显示格式之间的转换应该很容易,但也许所有这些都可以通过某种巧妙的方式组合起来



编辑:这不是针对公共网站的,因此关于依赖Javascript和类似内容的意见是不相关的。

好吧,我想到的一个想法可能是专门使用Javascript,并将实际输入的值存储到隐藏字段中。然后捕获textbox的onBlur Javascript事件,以调用根据您的需求格式化值的函数


最后,在提交表单时,访问隐藏字段中的值,而不是文本框。

您提问的方式基本上是希望在客户端进行验证,这在任何情况下都是不允许的。只需提交数字并使用特定于语言环境的处理在服务器端验证它。如果您需要即时反馈,请使用AJAX,但要在服务器端进行验证--您可以通过AJAX请求执行onBlur()。

根据这些信息,我可能会执行以下操作:

模糊处理程序应该

  • 获取输入
  • 验证输入-它是一个数字吗?在射程之内吗?等等
  • 转换为标准化形式进行显示(1.234,56)
  • 将表单的[input]值设置为规范化表单
  • 提交处理程序应该

  • 获取输入
  • 验证输入-同上
  • 将特定于区域设置的值转换为服务器上所需的值
  • 将表单的[input]值设置为转换后的值
  • 提交表格
  • 请记住,无论您进行了多少客户端验证,您仍然需要进行服务器端验证。但我会尽可能多地使用Javascript进行验证,因为我更愿意让用户知道他的表单值将失败,而不必首先向服务器发送表单值


    此外,我可能会更改服务器端操作,以便能够在许多地区处理金额。这将在Javascript中的提交处理程序上给我更多的回旋余地。

    我不同意客户端验证是一件坏事。缺少服务器端验证是一件坏事,但这是另一回事。(而且AJAX仍然与服务器联系,这是一种浪费。)在这种情况下,在客户端格式化它是非常实用的。我也想到了这一点。但这会使输入数据的大小增加一倍。这也可以处理,但似乎不太实际。