【发布时间】:2018-09-05 00:01:48
【问题描述】:
我对编码比较陌生——处理表单验证,并且无法使用我的 formValidation 函数让页面实际返回 false(如果用户输入了不正确的 isbn 长度,则不提交表单)。想知道我在这里缺少什么。
无论 isbn.length 是什么,都会弹出警报并提交表单——但是,如果长度正确,它会被添加到数据库中并重新路由到主页。如果它不是正确的长度,它被路由到 “此页面无法正常工作 localhost 没有发送任何数据。 ERR_EMPTY_RESPONSE"
Javascript:
//function to validate the form's ISBN number input and ensure it's between 10-14 digits.
function formValidation(){
var isbn = document.forms["sellForm"]["isbn"];
if (isbn.length >= 10 && isbn.length <= 14){
return true;
}
else
{
alert("Please input a 10-14 digit ISBN number");
isbn.focus();
return false;
}
}
</script>
对应的HTML:
<form name="sellForm" method="POST" action="/create" role="form" onsubmit="formValidation()">
<div class="form-group">
<label for="role" >ISBN</label>
<input type="number" size=14 class="form-control" name="isbn" id="role" required
placeholder="input the 10-14 digit ISBN number"/>
</div>
<div class="form-group">
<label for="age">Condition</label>
<br>
<input type="radio" name="book_condition" value="Very Used"> Very Used<br>
<input type="radio" name="book_condition" value="Lightly Used"> Lightly Used<br>
<input type="radio" name="book_condition" value="Like New"> Like New
</div>
</div>
<div class="form-group">
<label>Price</label>
<input type="number" class="form-control" name="price" required
placeholder="input whole dollar price">
</div>
<button type="submit" class="btn btn-primary btn-md" id="add-btn">
<span class="fa fa-fire"></span> Sell</button>
</form>
【问题讨论】:
-
您收到警报了吗?任何控制台错误(按 F12 以调出浏览器工具,然后转到“控制台”选项卡)?
-
“无法让页面实际返回false”是什么意思?
-
console.log(isbn)在您设置该变量后立即放置时会告诉您什么?定义了吗?另外,“10-12 位”还是“10-14”?警报消息说一个,代码和占位符文本说另一个。 -
应该是 10-14。检查 console.log(isbn)
-
一个。您应该将
var isbn = document.forms["sellForm"]["isbn"];更改为var isbn = document.forms["sellForm"]["isbn"].value;b。并且,您应该调试isbn值。在网络浏览器中,按 f12 转到“控制台选项卡”,输入console.log(isbn)。 C。onsubmit="return formValidation()".
标签: javascript html forms validation