Javascript 将html输入框中的值保持在设定值以下

Javascript 将html输入框中的值保持在设定值以下,javascript,validation,Javascript,Validation,我的输入框只能包含数值(使用插件)。 现在我希望输入值低于90。 如果输入的值超过此最大上限或无法分析,则应插入上一个值。 默认情况下,该框将包含“1” 我想我应该以某种方式捕捉当前值。尝试分析新值。如果是允许的值,请继续使用此值,如果不是,请将旧值放回。 由于我的JS技能非常有限,我甚至不知道我可以使用哪些事件,我发现在intarwebz上找到的文档相当混乱 --编辑-- 我最终使用了代码和可用性建议。 我现在要做的就是启用/禁用整个表单的提交。 仅禁用“提交”按钮是不够的。这将有助于:

我的输入框只能包含数值(使用插件)。
现在我希望输入值低于90。 如果输入的值超过此最大上限或无法分析,则应插入上一个值。 默认情况下,该框将包含“1”


我想我应该以某种方式捕捉当前值。尝试分析新值。如果是允许的值,请继续使用此值,如果不是,请将旧值放回。
由于我的JS技能非常有限,我甚至不知道我可以使用哪些事件,我发现在intarwebz上找到的文档相当混乱

--编辑--
我最终使用了代码和可用性建议。
我现在要做的就是启用/禁用整个表单的提交。 仅禁用“提交”按钮是不够的。

这将有助于:

现在有一个关于可用性的词:永远不要在用户输入时改变值。如果你想知道原因,试试看

相反,将字段变为红色(设置背景色)。提交表单时,再次运行验证以确保用户已修复错误。否则,在字段附近显示一条内联错误消息(“值必须小于90”),并将焦点设置为字段

不要使用alert()。alert()仅用于调试,在真正的web应用程序中没有用处,因为它a)会中断用户的工作流程,b)在用户键入时不起作用:最终,用户将点击空格,对话框将关闭,用户可能会注意到有一个对话框或它说了什么

您可能想签出一个库,例如或,因为它们已经包含了您需要的所有构建块,并且它们为您修复了许多浏览器错误。


<input id="targetQuantity" name="targetQuantity" type="text" value="1" onkeyup="check(this)" />
。。。 JavaScript:

var v=1;

function check(i) {      
  if(i.value > 100) {
    i.value=v;
    alert("< 100");
  }
  else
    v=i.value;
}
var v=1;
功能检查(i){
如果(i.值>100){
i、 值=v;
警报(<100”);
}
其他的
v=i.值;
}

在javascript代码块中编写此js:

var LastGood = 1;
function CheckValue(input, max) {
    var value = Number(input.value);
    if (NaN == value || input.value>max) { //it is not a number or is too big - revert
        input.value = LastGood;
    } else { //it is ok, save it as the last good value
        LastGood = value;
    }
}
将输入表单更改为

<input id="targetQuantity" name="targetQuantity" type="text" value="1" onkeyup="CheckValue(this, 90)" />


谢谢你的建议。除了调试之外,我不使用警报。事实上,这就是为什么我大部分时间在没有剧本的歌剧中冲浪的原因。另外,我已经在使用JQuery了。为什么要用javascript呢?为什么不将maxlength=“90”添加到输入元素的属性中?因为maxlength允许90个字符。他想要maxvalue,如果它存在的话!我应该更仔细地阅读。。。
<input id="targetQuantity" name="targetQuantity" type="text" value="1" onkeyup="CheckValue(this, 90)" />