javascript中的警报未按预期工作
我不知道为什么javascript不能工作。不会显示警报消息。这是一个简单的html文件,用于验证用于将书籍添加到数据库的表单。点击“提交”按钮后,页面将直接指向以下链接,而不显示警告窗口。请帮助我javascript中的警报未按预期工作,javascript,alert,Javascript,Alert,我不知道为什么javascript不能工作。不会显示警报消息。这是一个简单的html文件,用于验证用于将书籍添加到数据库的表单。点击“提交”按钮后,页面将直接指向以下链接,而不显示警告窗口。请帮助我 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/199
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Add Book</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/default.css" />
</head>
<body id="index_page">
<div id="wrapper">
<div id="header">
<h1 align="left">Library</h1>
</div>
<ul id="navigation">
<li id="index"><a href="http://localhost/UID/FAQ.php">FAQ</a></li>
</ul>
<div id="content">
<div id="main_content">
<h2>Add book</h2>
<h4>Enter details of the book</h4>
<FORM action="add_book_action.php" method="post" >
<TABLE WIDTH="50%" >
<TR>
<TH width="50%">Book ID:</TH>
<TD width="50%"><INPUT TYPE="text" name="id" id="book_id"></TD>
</tr>
<TR>
<TH width="50%">Book Name:</TH>
<TD width="50%"><INPUT TYPE="text" name="name" id="book_name"></TD>
</tr>
<TR>
<TH width="50%">Book Author:</TH>
<TD width="50%"><INPUT TYPE="text" NAME="author" id="book_author"></TD>
</tr>
<TR>
<TH width="50%">Year of Publication:</TH>
<TD width="50%"><INPUT TYPE="text" NAME="pub" id="book_year"></TD>
</tr>
<TR>
<TH></TH>
<TD width="50%"><INPUT TYPE="submit" Value="Submit" onclick="return validate_fun()"></TD>
</tr>
</TABLE>
</FORM>
</div>
<p id="footer"><a href="http://localhost/UID/UID.php">@AntonyAjay,2012</a></p>
</div>
<script language="javascript">
function validate_fun()
{
var x=document.getElementById("book_id").value;
if(x==""||isNaN(x))
{
alert("Book Id should be numeric");
return false;
}
var x=document.getElementById("book_name").value;
var regex = /^[a-zA-Z ]*$/;
if(!(regex.test(x)))
{
alert("Book Name should be only characters and spaces");
return false;
}
var x=document.getElementById("book_author").value;
var regex = /^[a-zA-Z ]*$/;
if(!(regex.test(x)))
{
alert("Author Name should be only characters and spaces");
return false;
}
}
var x = document.getElementById("book_year").value;
var regExp = /^([1][6-9][0-9][0-9]|[2][0][01][0-9]\/|-([1-9]|[1][0-9]|[2][0-9]|[3][01])\/|-([1-9]|[1][012])$/;
if(!(regExp.test(x)))
{
alert("Enter date in yyyy-mm-dd format");
return false;
}
}
</script>
</body>
</html>
添加书本
图书馆
添加书本
输入书籍的详细信息
图书编号:
书名:
作者:
出版年份:
函数validate_fun()
{
var x=document.getElementById(“book_id”).value;
如果(x==“”| | isNaN(x))
{
警报(“图书Id应为数字”);
返回false;
}
var x=document.getElementById(“账簿名称”).value;
var regex=/^[a-zA-Z]*$/;
if(!(正则表达式测试(x)))
{
警告(“书籍名称应仅为字符和空格”);
返回false;
}
var x=document.getElementById(“图书作者”).value;
var regex=/^[a-zA-Z]*$/;
if(!(正则表达式测试(x)))
{
警告(“作者名称应仅为字符和空格”);
返回false;
}
}
var x=document.getElementById(“账面年”).值;
var regExp=/^([1][6-9][0-9][0-9][2][0-01][0-9]\/-([1-9][1][0-9][2][0-9][3][01])\/-([1-9][1][012 12])$;
if(!(regExp.test(x)))
{
警报(“以yyyy-mm-dd格式输入日期”);
返回false;
}
}
正如大家所建议的,请使用任何现代浏览器中的开发工具,它将告诉您更多信息。如果您仍在努力,请参阅下面修改的代码,但这些都是愚蠢的错误,因此请确保您有一个IDE,可以进行缩进并检查是否缺少或多余的大括号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Add Book</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/default.css" />
</head>
<body id="index_page">
<div id="wrapper">
<div id="header">
<h1 align="left">Library</h1>
</div>
<ul id="navigation">
<li id="index"><a href="http://localhost/UID/FAQ.php">FAQ</a></li>
</ul>
<div id="content">
<div id="main_content">
<h2>Add book</h2>
<h4>Enter details of the book</h4>
<FORM action="add_book_action.php" method="post" >
<TABLE WIDTH="50%" >
<TR>
<TH width="50%">Book ID:</TH>
<TD width="50%"><INPUT TYPE="text" name="id" id="book_id"></TD>
</tr>
<TR>
<TH width="50%">Book Name:</TH>
<TD width="50%"><INPUT TYPE="text" name="name" id="book_name"></TD>
</tr>
<TR>
<TH width="50%">Book Author:</TH>
<TD width="50%"><INPUT TYPE="text" NAME="author" id="book_author"></TD>
</tr>
<TR>
<TH width="50%">Year of Publication:</TH>
<TD width="50%"><INPUT TYPE="text" NAME="pub" id="book_year"></TD>
</tr>
<TR>
<TH></TH>
<TD width="50%"><INPUT TYPE="submit" Value="Submit" onclick="return validate_fun()"></TD>
</tr>
</TABLE>
</FORM>
</div>
<p id="footer"><a href="http://localhost/UID/UID.php">@AntonyAjay,2012</a></p>
</div>
<script language="javascript">
function validate_fun()
{
var x=document.getElementById("book_id").value;
if(x==""||isNaN(x))
{
alert("Book Id should be numeric");
return false;
}
var x=document.getElementById("book_name").value;
var regex = /^[a-zA-Z ]*$/;
if(!(regex.test(x)))
{
alert("Book Name should be only characters and spaces");
return false;
}
var x=document.getElementById("book_author").value;
var regex = /^[a-zA-Z ]*$/;
if(!(regex.test(x)))
{
alert("Author Name should be only characters and spaces");
return false;
}
var x = document.getElementById("book_year").value;
var regExp = /^([1][6-9][0-9][0-9]|[2][0][01][0-9]\/|-([1-9]|[1][0-9]|[2][0-9]|[3][01])\/|-([1-9]|[1][012])$/;
if(!(regExp.test(x)))
{
alert("Enter date in yyyy-mm-dd format");
return false;
}
}
</script>
</body>
</html>
添加书本
图书馆
添加书本
输入书籍的详细信息
图书编号:
书名:
作者:
出版年份:
函数validate_fun()
{
var x=document.getElementById(“book_id”).value;
如果(x==“”| | isNaN(x))
{
警报(“图书Id应为数字”);
返回false;
}
var x=document.getElementById(“账簿名称”).value;
var regex=/^[a-zA-Z]*$/;
if(!(正则表达式测试(x)))
{
警告(“书籍名称应仅为字符和空格”);
返回false;
}
var x=document.getElementById(“图书作者”).value;
var regex=/^[a-zA-Z]*$/;
if(!(正则表达式测试(x)))
{
警告(“作者名称应仅为字符和空格”);
返回false;
}
var x=document.getElementById(“账面年”).值;
var regExp=/^([1][6-9][0-9][0-9][2][0-01][0-9]\/-([1-9][1][0-9][2][0-9][3][01])\/-([1-9][1][012 12])$;
if(!(regExp.test(x)))
{
警报(“以yyyy-mm-dd格式输入日期”);
返回false;
}
}
除了这个额外的}
之外,您的代码没有结尾
,而且这个RegExp还有一个无对括号:
var regExp = /^([1][6-9][0-9][0-9]|[2][0][01][0-9]\/|-([1-9]|[1][0-9]|[2][0-9]|[3][01])\/|-([1-9]|[1][012])$/;
所有这些都可以在使用浏览器的开发工具时在两秒钟内找到…您的代码会产生
语法错误:意外标记}
。打开浏览器的调试工具(在大多数浏览器中为F12),查看它报告的错误。(编辑:并学习缩进代码,或者获取一个可以为您执行此操作的IDE。错误将很明显。)您的所有警报都在条件内,您是否检查过条件是否为真?这可能是您的反射或用于测试页面的数据有问题。我将以过于本地化的方式关闭,因为不太可能有人1)遇到相同的问题(语法错误)2)在同样的情况下,3)不会通过调试找到它。@JanDvorak:在我看来,所有的语法错误都属于“太本地化”。另外,“这个问题没有显示任何研究成果”,IMOhey…我复制粘贴了修改后的代码。。我纠正了可能的语法错误。。。它仍然无法显示警报框。很抱歉打扰您,但它在我的系统中运行不正常。我只更正了语法错误,它在chrome上运行正常。当我未填写表格就提交时,会收到一个警告框。你能告诉我你尝试了什么而不是仅仅说警报框没有显示吗?作为JS的新手,我在ubuntu的默认文本编辑器上写了这段代码。我点击提交按钮,它连接到数据库。没有进行验证。我纠正了这个问题,按照Teemu的建议添加了匹配的右括号。它现在工作得很好。好的,纠正了错误。正是正则表达式中不匹配的括号不允许显示警报框。谢谢