我的文本框总是返回字段不是数字,即使它是。
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');
}
答案 0 :(得分:1)
当您将值分配给字段时,您正在调用field.value。
var field = document.forms["garysForm"]["adultBox"].value;
if (isNaN(field.value)) {
请改为尝试:
var field = document.forms["garysForm"]["adultBox"];
if (isNaN(field.value)) {
答案 1 :(得分:0)
您可以使用其ID:
获取成人框的值var field = document.getElementById("ofAdults").value;
if (isNaN(field)) {
....
答案 2 :(得分:0)
我使用.elements方法解决了这个问题。
var field = document.forms["garysForm"].elements["adultBox"].value;
然后,您需要考虑SPACE也被视为数字reference。所以我应用了以下逻辑。
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仅用于演示目的。
我希望你觉得这个答案很有帮助。 谢谢。