Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 如何获取输入类型number的输入值?_Javascript_Php_Forms - Fatal编程技术网

Javascript 如何获取输入类型number的输入值?

Javascript 如何获取输入类型number的输入值?,javascript,php,forms,Javascript,Php,Forms,我的表格中有一个数字字段,可以在这里输入分数: <input type="number" min="0" max="100" class="form-control" name="total_score" id='total_score' value="<?php echo $total_score;?>" >(Please enter a score from 0-100) 但似乎不起作用。有什么想法吗?谢谢。value永远不会为null,因为它总是一个字符串。你可以

我的表格中有一个数字字段,可以在这里输入分数:

<input type="number" min="0" max="100" class="form-control" name="total_score" id='total_score' value="<?php echo $total_score;?>" >(Please enter a score from 0-100)

但似乎不起作用。有什么想法吗?谢谢。

value
永远不会为
null
,因为它总是一个字符串。你可以用

var score  = document.getElementsById("total_score").value.trim();
if (!score) {
    alert("no score");
}
…因为任何非空字符串(包括
“0”
)都是真实的

一旦确定存在值,您可以自己将其转换为数字(有多个选项),或者使用输入的
valueAsNumber
属性

注意:是在ES2015中添加的,因此它不会出现在像IE8这样的过时浏览器中,除非您对其进行多填充



旁注:我假设你问题中的
getElementsById
是一个输入错误,而你真正的代码有
getElementById
(no
s
)。

永远不会是
null
,因为它总是一个字符串。你可以用

var score  = document.getElementsById("total_score").value.trim();
if (!score) {
    alert("no score");
}
…因为任何非空字符串(包括
“0”
)都是真实的

一旦确定存在值,您可以自己将其转换为数字(有多个选项),或者使用输入的
valueAsNumber
属性

注意:是在ES2015中添加的,因此它不会出现在像IE8这样的过时浏览器中,除非您对其进行多填充



旁注:我假设您问题中的
getElementsById
是一个打字错误,而您的真实代码具有
getElementById
(no
s
)。

这是否有效:

            if(isNaN(parseInt(score))){
                alert("no score");
            }
这是否有效:

            if(isNaN(parseInt(score))){
                alert("no score");
            }
这应该起作用:

//首先获取元素
let element=document.getElementById('myInput');
//获取元素的value属性
console.log(element.value);
//我们可以通过以下方式进行检查:
函数更改(){
如果(element.value>100){
log('值太大');
}
如果(元素值<5){
log(“值太小”);
}
}
这应该可以:

//首先获取元素
let element=document.getElementById('myInput');
//获取元素的value属性
console.log(element.value);
//我们可以通过以下方式进行检查:
函数更改(){
如果(element.value>100){
log('值太大');
}
如果(元素值<5){
log(“值太小”);
}
}

让我们详细描述这个问题。我们总是需要了解问题的本质,这样我们才能解决所有类似的问题

<div class="score-field">
    <label for="total_score">(Please enter a score from 0-100)</label>
    <input 
      type="number"
      id="total_score"
      name="total_score" 
      min="0" 
      max="100" 
      value="<?php echo $total_score;?>">
</div>
因此,
String
类型的值永远不会为
null

let value = '';
console.log(value == null) //false
讨论够了吧

让我们来解决这个问题

const score = parseFloat(document.getElementById('total_score').value);
它将值
字符串
转换为
数字

假设

parseFloat("100"); // 100
parseFloat(''); //NaN
我们可以检查
值是否真的是一个数字

isNaN(value); // return true or false
我想,这是你要解决的问题

完全解决:

HTML:


让我们详细描述一下这个问题。我们总是需要了解问题的本质,这样我们才能解决所有类似的问题

<div class="score-field">
    <label for="total_score">(Please enter a score from 0-100)</label>
    <input 
      type="number"
      id="total_score"
      name="total_score" 
      min="0" 
      max="100" 
      value="<?php echo $total_score;?>">
</div>
因此,
String
类型的值永远不会为
null

let value = '';
console.log(value == null) //false
讨论够了吧

让我们来解决这个问题

const score = parseFloat(document.getElementById('total_score').value);
它将值
字符串
转换为
数字

假设

parseFloat("100"); // 100
parseFloat(''); //NaN
我们可以检查
值是否真的是一个数字

isNaN(value); // return true or false
我想,这是你要解决的问题

完全解决:

HTML:


“我不想使用required,因为我不想在用户需要更多时间来决定输入分数时阻止他们。”这似乎很奇怪,这正是
required
的目的。它只会阻止表单提交,而不会在字段周围进行标记。我假设
getElementsById
是一个打字错误,而您的真实代码有
getElementById
(no
s
)。@T.J.Crowder是的,听起来很奇怪。但是,因为我还有一个临时保存表单的按钮,它允许用户将一些字段留空。这就是为什么我不想使用此表单的required。@T.J.Crowder将getElementById与getElementsByName一起误用真的很糟糕。谢谢你指出这一点!;)“我不想使用required,因为我不想在用户需要更多时间来决定输入分数时阻止他们。”这似乎很奇怪,这正是
required
的目的。它只会阻止表单提交,而不会在字段周围进行标记。我假设
getElementsById
是一个打字错误,而您的真实代码有
getElementById
(no
s
)。@T.J.Crowder是的,听起来很奇怪。但是,因为我还有一个临时保存表单的按钮,它允许用户将一些字段留空。这就是为什么我不想使用此表单的required。@T.J.Crowder将getElementById与getElementsByName一起误用真的很糟糕。谢谢你指出这一点!;)当我在屏幕上打印可变分数时,系统似乎甚至没有捕捉到该元素:(@Lykas-在web控制台中查看,您是否遇到了某种错误?(您是否看到了
getElementById
中有关错误的注释?)谢谢!这确实是打字错误,我错误地使用了getElementsByName;(@Lykas-很高兴有帮助。-)
null
这件事也是一个问题(因为
“==null
false
)@Lykas-一般情况下不是这样,但如果你知道
分数
是一个字符串,那么就是这样。所有非空字符串都是真的(当用作布尔值时,它们转换为
真的
);空字符串是假的(当用作布尔值时,它转换为
假的
)。仅供参考,假值是
0
NaN
null
未定义
,当然还有
false
。所有其他值(包括
“0”
)都是真实的。当我在屏幕上打印可变分数时,系统似乎甚至没有捕捉到该元素(@Lykas-在web控制台中查看,您是否遇到了某种错误?(您是否看到了
getElementById
中关于错误的注释?)谢谢!这确实是打字错误,我误用了getElementsByName;(@Lykas-很高兴这有帮助