我无法弄清楚我的代码出了什么问题,以及为什么表单验证根本没有触发。该代码是用于将书籍插入数据库的 HTML 表单。为了简单起见,我删除了PHP和CSS,但如有必要,我可以重新编辑它。
function validateNewBook() {
var isbn = document.forms['addNewBook']['isbn'].value;
var title = document.forms['addNewBook']['title'].value;
if (title == ""){
alert("Please enter the book's title.");
return false;
}
return true;
}
<form name="addNewBook" action='#' onsubmit="return validateNewBook()" method="post">
<section id="controls">
<input class="button" type="submit" name="save_new_book" value="Save Book"/>
<input class="button" type="submit" name="browse_books" value="Browse"/>
</section>
<section id="input">
<span>* required field</span>
<span class="flex-input">
<label>ISBN</label><input type="text" name="isbn" id="isbn" size=20 value="" /> <span class="errorMessage">*</span>
</span>
<span class="flex-input">
<label>Title</label><input type="text" name="title" size=50 id="title" value="" />
<span class='errorMessage'>*</span>
</span>
</section>
</form>
但是,当我在更完整的程序中运行此代码时,表单仍然会将新书输入数据库,即使标题字段为空也是如此。发生了什么事情?
可能是用户在输入框中有输入空格。因此需要过滤具有修剪功能的输入框。例如。
title.trim();
在提及任何扩展之前,您需要这样做。