Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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/70.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 Don';不允许在最大值和最小值之间键入数字_Javascript_Html_User Experience - Fatal编程技术网

Javascript Don';不允许在最大值和最小值之间键入数字

Javascript Don';不允许在最大值和最小值之间键入数字,javascript,html,user-experience,Javascript,Html,User Experience,我在做一个角度4的项目。我有一个HTML,带有minmax和step属性。我的目标是防止键入的数字超出用户友好的最小-最大范围。我该怎么做 函数myFunction(e){ var min=-100; var max=100; var txtValue=document.getElementById(“txt”).value; var pressedValue=e.键; var组合=解析浮点(txtValue,pressedValue); log(`OLD:${txtValue}\n新:${p

我在做一个角度4的项目。我有一个HTML
,带有
min
max
step
属性。我的目标是防止键入的数字超出用户友好的最小-最大范围。我该怎么做

函数myFunction(e){
var min=-100;
var max=100;
var txtValue=document.getElementById(“txt”).value;
var pressedValue=e.键;
var组合=解析浮点(txtValue,pressedValue);
log(`OLD:${txtValue}\n新:${pressedValue}\n组合:${combined}`);
如果(组合>最大值){
e、 预防默认值();
console.log('ohhw snap');
}
}

我看到的第一个问题是,您提供了2个参数,其中只接受1(可能您对其中接受2个参数感到困惑,即字符串和基数。您应该先组合数字,然后对组合值进行1浮点分析)

比如说

函数myFunction(){
var min=-100;
var max=100;
var inputRef=document.getElementById(“txt”);
var txtValue=inputRef.value;
if(isNaN(parseFloat(txtValue))){
日志(“警告输入不是数字”);
返回;
}
var newNum=parseFloat(txtValue);
log(`NEW:${newNum}`);
如果(newNum>max | | newNum

出于用户体验的原因,我建议采用类似的方式。如果用户认为键盘不工作,可能会让用户感到困惑

$('.range-exforced')。在('change',函数(e)上{
var min=parseFloat($(this.attr('min'));
var max=parseFloat($(this.attr('max'));
var curr=parseFloat($(this.val());
如果(curr>max){$(this).val(max);var changed=true;}
if(curr
input+。警告{
背景:#ffff99;
显示:内联块
}


您无法阻止某人输入错误的值。相反,请向他们提供反馈,解释错误。谢谢,这是一个很好的方法。但是,键入带有点的值是不可能的。例如:“15.65”我修复了使用浮点数的示例,并更新了示例,如果用户输入的数字不在范围内,则将输入重置为空。它还可以以某种方式告诉用户出了什么问题。您有没有不使用jQuery的答案?我手头没有答案(我通常不会编写太多非库JavaScript),但这在jQuery之外应该是可能的。