1

私はJavascriptの初心者です。次のコードのエラーは、ページが読み込まれるとすぐにアラート メッセージが表示されることです。このエラーを克服するのを手伝ってください。送信ボタンを押すと、アラートは表示されず、次のリンクが開かれます。

<!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>Delete 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>Delete book</h2>
 <h4>Enter details of the book</h4>
 <FORM action="del_book_action.php" method="post" >
  <TABLE WIDTH="70%" >

  <TR>
      <TH width="60%">Enter book ID:</TH>
      <TD width="50%"><INPUT TYPE="text" name="id" id="book_id"></TD>
  </tr>
  <TR>
      <TH></TH>
      <TD width="50%"><INPUT TYPE="submit" Value="Submit"         onclick="validate_f()"></TD>
  </tr>
  </TABLE>
 </FORM>

</div>
<p id="footer"><a href="http://localhost/UID/UID.php">@AntonyAjay,2012</a></p>
</div>

<script language="javascript">
window.onload=function validate_f()
{
 var y=document.getElementById("book_id").value;
 if(y==""||isNaN(x))
{
alert("Book Id should be numeric");
}
 }
</script>

 </body> 
  </html>
4

5 に答える 5

2

ページの読み込み時に関数を実行しています。これを変える:

window.onload=function validate_f()

に:

function validate_f()
于 2012-12-23T05:22:46.503 に答える
0

修正に変更isNaN(x)するかどうかを確認してください。isNaN(y)

于 2012-12-23T05:21:40.847 に答える
0

コードの意図は、送信時に検証することです。何が起こっているかというと、ページの読み込み時に関数が呼び出されているということです

于 2012-12-23T05:22:42.937 に答える
0

これは、関数 onclick を呼び出しているためです。2 つの変更を行います。ロード時に関数を使用しないでください。以下のhtmlの変更とスクリプトを使用してください

<INPUT TYPE="submit" Value="Submit" onclick="return validate_f()">

    function validate_f()
{
 var y=document.getElementById("book_id").value;
 if(y==""||isNaN(x))
{
alert("Book Id should be numeric");
return false;
}
 }
于 2012-12-23T05:22:57.667 に答える
0

実際の呼び出しではなく、関数への参照を window.onload に渡します。

<script>
window.onload = function(){
 alert('test');
}
</script>
于 2012-12-23T05:25:38.523 に答える