我的表单中有一个数字字段,可以在此处输入分数:
<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)
在提交表单之前,我需要检查该字段是否已填写。我不想使用必需的,因为我不想在用户需要更多时间来决定输入分数时阻止他们。
我试图通过以下方式获取总分的值:
var score = document.getElementsById("total_score").value;
if(score==null){
alert("no score");
}
但似乎不起作用。有任何想法吗?谢谢。
最佳答案
value
永远不会是 null
因为它始终是一个字符串。你可以使用
var score = document.getElementsById("total_score").value.trim();
if (!score) {
alert("no score");
}
...因为任何非空字符串(包括 "0"
)都是真实的。
确定其中存在值后,您可以自行将其转换为数字( my answer here 有多个选项)或使用输入的 valueAsNumber
属性。
注:String#trim
已在 ES2015 中添加,因此它不会存在于 IE8 等过时的浏览器中,除非您对它进行了填充。
旁注:我假设您问题中的 getElementsById
是一个拼写错误,而您的真实代码有 getElementById
(没有 s
)。
关于javascript - 如何获取输入类型为number的输入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51692859/