表单验证JavaScript编号总是返回false

Form Validation JavaScript number always return false

本文关键字:返回 false 编号 验证 JavaScript 表单      更新时间:2023-09-26

我的文本框总是返回一个字段,该字段不是数字,即使它是。

HTML

<form name = garysForm>
Number of adults: <input type="number" size="6" id="ofAdults" name="adultBox" min="0" max="50" required><br>
Number of children: <input type="number" size="6" id="ofChild" min="0" max="50" required><br>
Date:<input type="text" name="date" id="datepicker" required><br>   
<Button type="button"   onclick="BookingFare(); return false;">Calculate</button><br>
</form>

Javascript

var field = document.forms["garysForm"]["adultBox"].value;
    if (isNaN(field.value)) {
            alert('Please enter a valid number');
        }

当您为字段赋值时,您正在调用field.value。

var field = document.forms["garysForm"]["adultBox"].value;
if (isNaN(field.value)) {

试试这个:

var field = document.forms["garysForm"]["adultBox"];
if (isNaN(field.value)) {

我使用.elements方法解决了这个问题。

var field = document.forms["garysForm"].elements["adultBox"].value;

然后,您需要考虑SPACE也被视为数字引用。所以我应用了以下逻辑。

var field = document.forms["garysForm"].elements["adultBox"].value;
console.log(field)
if (field=='') {
    alert('Please enter a valid number');
}
else if (isNaN(field)) {
   alert('Please enter a valid number');
}
else {
   alert(field)
}     

演示

*Jquery仅用于演示目的。

我希望你觉得这个答案有帮助。谢谢

您可以使用其id:获取成人盒子的值

var field = document.getElementById("ofAdults").value;
if (isNaN(field)) {
    ....