Javascript 更改HTML数字输入的增量值而不更改有效值

Javascript 更改HTML数字输入的增量值而不更改有效值,javascript,html,Javascript,Html,我有一个输入表单,如下所示: 在表单标签中使用novalidate将消除整个表单的验证,但保留逐步实现的增量。Update 我确实在表单标签中添加了非有效性。它让我现在做我想做的,但它可能不是最好的解决方案 如果您不希望您的表单受到novalidate的影响,请使用两种表单: 表格A【无行为或方法】 所有用户交互和计算都在这里。 可以修改所有输入,而无需担心表单中的内置验证。 表格B[设定行动和方法可选目标] 提交按钮位于 为要提交的表单a上的每个值添加隐藏输入,并确保每个值都有name属性和

我有一个输入表单,如下所示:

在表单标签中使用novalidate将消除整个表单的验证,但保留逐步实现的增量。

Update 我确实在表单标签中添加了非有效性。它让我现在做我想做的,但它可能不是最好的解决方案

如果您不希望您的表单受到novalidate的影响,请使用两种表单:

表格A【无行为或方法】

所有用户交互和计算都在这里。 可以修改所有输入,而无需担心表单中的内置验证。 表格B[设定行动和方法可选目标]

提交按钮位于 为要提交的表单a上的每个值添加隐藏输入,并确保每个值都有name属性和值。 任何客户端验证都应该在这里完成。 使用该设置,您将需要类似onbeforesmit的事件,以便表单A的值可以在提交到服务器之前转移到表单B。不幸的是,我不认为它是一种标准,但模仿它很简单:

 formA.onsubmit = b4Submit;

 function b4Submit(event) {

   hidden_Input_In_FormA.value = number_Input_With_Crazy_Step_In_FormA.value

   return true;
 }
因此,这个精心设计的示例显示了一个事件处理程序,它从一个表单获取值,然后将其存储在另一个表单中。接下来,它将继续提交它拥有的任何数据。这是因为回调函数返回true,如果返回false,回调函数本身就会死亡,提交事件也会随之死亡

该演示已更新,以完成上述操作。注意:没有使用novalidate属性。第二个表单B或formtx是从隐藏输入发送文本。如果像-103.002684109这样的数字来自文本或隐藏输入,则它是无效的,尽管我相信大多数表单控件中的实际数据实际上是字符串而不是数字,但它只是文本

输入可以采用任何数字,但最常见的值将以0.05为增量。这有什么办法吗?使用JavaScript的解决方案也非常受欢迎

您可以更改任何标记AFAIK上所需的任何属性。在编程上,使用纯JavaScript时语法很简单:

 Object.property = "string"
对象:引用的标记

属性:当引用标准属性(如属性)时,它将成为属性

字符串:该值必须是字符串

以下是以编程方式更改标准属性的基本方法:

<a href="https://stackoverflow.com"></a>
var obj = document.querySelector('a');
obj.href = "https://google.com"; // <a href="https://google.com"></a>
身体{ 字体:400 16px/1.5“控制台” } 数字{ 右边距:15px; } 输入 输出 按钮 选择 选项 标签{ 显示:内联块; 字体:继承 } 挑选{ 填充物:3件5件 } [type='submit']{ 浮动:对; } 单击按钮更改输入 改变 属性调整 类型: 数字 文本 范围 隐藏的 颜色 时间
我不确定,但可能需要一些JavaScript来消除按键上的步长值?我从来没有尝试过这只是一个想法。不,不只是使用普通的HTML5。将有效值限制为步长因子的整数倍是这里的一个“内置”功能,而不是您可以选择退出的功能。是否可以设置step=any,然后通过JS更改增量?我对HTML或JS都不是很有经验,所以如果有可能的话,我们会朝着正确的方向推进,或者如果你有时间的话,我们会很感激你的解决方案。你所问的几乎是不可能的,近乎荒谬。您如何想象在允许任何输入的同时使用步骤?或者你能详细说明你的意思吗?这是一个测试工具。最常见的增量是0.05,以获得一个看似真实的结果的值。然而,有时0.1可能是低的,0.15可能是高的,然后我想尝试这些步骤中的数字,即[0.11,0.12,0.13,0.14],因为它们可能会给我一个更准确的结果。我确实在表单标签中添加了非有效性。它让我现在做我想做的,但它可能不是最好的解决方案。