JavaScript 表单验证不起作用;onsubmit() 属性有问题?



我无法弄清楚我的代码出了什么问题,以及为什么表单验证根本没有触发。该代码是用于将书籍插入数据库的 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> &nbsp;
			</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();

在提及任何扩展之前,您需要这样做。

最新更新