Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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输入类型编号限制为值1和2_Javascript_Html_Forms - Fatal编程技术网

JavaScript输入类型编号限制为值1和2

JavaScript输入类型编号限制为值1和2,javascript,html,forms,Javascript,Html,Forms,可能是用JavaScript完成的 看到这个了吗 即使设置了“最小值”和“最大值”,您仍然可以键入所需的任何数字,并且它将接受该值。在这种情况下,如何限制用户只能输入1或2,如果他们输入了不同的内容,则会发送警报并清除字段,以便用户可以重试。为简单起见,我将在您的输入中添加一个id: <input type="number" id="myInput" size="2" min="1" max="2"> 请记住,使用alert会让用户体验非常不和谐,我在这里只是举个例子。相反,

可能是用JavaScript完成的

看到这个了吗



即使设置了“最小值”和“最大值”,您仍然可以键入所需的任何数字,并且它将接受该值。在这种情况下,如何限制用户只能输入1或2,如果他们输入了不同的内容,则会发送警报并清除字段,以便用户可以重试。

为简单起见,我将在您的输入中添加一个
id

<input type="number" id="myInput" size="2" min="1" max="2">


请记住,使用
alert
会让用户体验非常不和谐,我在这里只是举个例子。相反,您可能希望向元素添加一个
错误
类或弹出一个模态。

为了简单起见,我正在向您的输入添加一个
id

<input type="number" id="myInput" size="2" min="1" max="2">


请记住,使用
alert
会让用户体验非常不和谐,我在这里只是举个例子。相反,您可能希望向元素添加
错误
类或弹出一个模态。

不使用JS,您可以设置
输入
字段的
模式
属性,以便用户至少知道他/她输入的内容无效。然而,这不会清除该字段

HTML

<input type="number" size="2" min="1" max="2" pattern="[12]">

不使用JS,您可以设置
输入
字段的
模式
属性,以便用户至少知道他/她输入的内容无效。然而,这不会清除该字段

HTML

<input type="number" size="2" min="1" max="2" pattern="[12]">

如果您不介意在无效输入上显示标准错误消息,还可以使用:

<input type="text" pattern="[1-2]">


编辑:如果向输入添加“title”属性,可以设置所需的错误消息。

如果您不介意在无效输入上显示标准错误消息,还可以使用:

<input type="text" pattern="[1-2]">

编辑:如果在输入中添加“title”属性,则可以设置所需的错误消息。

示例使用的是,并非所有浏览器都一致支持

您可以使用JavaScript限制此范围,也许可以使用jQuery。这无疑是对上述代码的改进,但实际上,在实际应用程序中,您可以通过使用框架组件(如或)来实现这一点。使用这样的框架将允许您在中心位置管理所有验证,并实现涉及多个属性的更复杂逻辑,例如“值2必须大于值1”。

示例使用的是,并非所有浏览器都一致支持


您可以使用JavaScript限制此范围,也许可以使用jQuery。这无疑是对上述代码的改进,但实际上,在实际应用程序中,您可以通过使用框架组件(如或)来实现这一点。使用这样的框架将允许您在中心位置管理所有验证,并实现涉及多个属性的更复杂逻辑,例如“值2必须大于值1”。

您可以使用jQuery和
checkValidity()
输入方法:

$('[name=points]').bind('keyup',function(){
  if (!$(this).get(0).checkValidity()) {
    $(this).val('');
  }
});
checkValidity()
只适用于现代浏览器


演示:

您可以使用jQuery和
checkValidity()
输入方法:

$('[name=points]').bind('keyup',function(){
  if (!$(this).get(0).checkValidity()) {
    $(this).val('');
  }
});
checkValidity()
只适用于现代浏览器

演示:

这就是
的预期工作方式:它不会在物理上阻止用户输入任意数据(可能是,但不需要),但控件在提交表单时不满足约束,如果它不符合要求

如果您只想让用户在两个选项之间进行选择,请使用复选框、两个单选按钮或带有两个选项的
select
元素。详细信息取决于此选项是强制选择还是可选,以及是否存在默认值

在这个问题上,p.S.W3schools.com也是假的。您链接到的示例(与您的代码不同)并非完全不正确,只是不合逻辑且具有误导性。

这就是
的预期工作方式:它不会从物理上阻止用户输入任意数据(可能是,但不需要),但控件在提交表单时不满足约束,如果不符合要求

如果您只想让用户在两个选项之间进行选择,请使用复选框、两个单选按钮或带有两个选项的
select
元素。详细信息取决于此选项是强制选择还是可选,以及是否存在默认值


在这个问题上,p.S.W3schools.com也是假的。您链接到的示例(与您的代码不同)并非完全不正确,只是不合逻辑且具有误导性。

当您通过单击箭头(右侧)增加或减少值时,操作将根据您的情况执行。如果您手动输入数字(通过键入),则该数字无效。您当前的javascript代码是什么样子的,您可能想在输入中添加一个按键事件并检测按键代码或值,然后采取相应的措施。在输入字段中的每个按键上,您可以检查是否可以验证输入文本并执行相应的操作necessary@user3362232但你们并没有提到对陈词滥调的限制箭头。当通过单击箭头(右侧)增加或减少值时,操作将根据您执行。如果您手动输入数字(通过键入),则该数字无效。您当前的javascript代码是什么样子的,您可能想在输入中添加一个按键事件并检测按键代码或值,然后采取相应的措施。在输入字段中的每个按键上,您可以检查是否可以验证输入文本并执行相应的操作necessary@user3362232但你们并没有提到对陈词滥调的限制阿罗。@Teemu嗯,我觉得自己像个笨蛋。谢谢你的帮助,现在已经修好了。谢谢,这是最好的解决方案。我不得不把这个脚本放在最下面