1

いくつかのフィールドを持つWebページを作成しています。エラーが発生するため、すべてのフィールドに入力しない限り、phpコードを実行したくありません。

これが私のhtmlコードです:

 <html>
 <body bgcolor="AliceBlue">


<form action="WorkingVersionV2.php" method="post">
<p>Which database do you wish to access? <center> <input type="text" name="database"/>     </center></p>
<p>What table would you like to examine? <center><input type="text" name="oldtablename"/></center></p>
<p>What would you like to name the table produced? <center><input type="text" name="newtablename"/></center></p>
<p>Start at row: <center><input type="text" name="startrow"/></center></p>
<p>Number of rows to search through:<center> <input type="text" name="numberrows"/>     </center></p>
<center><input type = "submit" onclick="checkFields()"/></center>
</form>

<script type="text/javascript">
function checkFields()
{
    var x = document.getElementById("database").innerHTML;
    if(x=="")
   {
        alert("You forgot to enter a database name");
       }
}
</script>

</body>
</html>

フィールドに入力しないと、ポップアップボックスを投げるとユーザーが停止するだろうと思いました。ただし、ユーザーが[送信]をクリックしても、ポップアップボックスは表示されないため、閉じた後もphpコードが実行されるかどうかはわかりません。

HTML / javascriptは私の得意ではありません。これを行うためのより良い、またはより簡単な方法がある場合は、私に知らせてください。

4

4 に答える 4

1

JavaScript 以外のブラウザで input type=submit を使用している場合は、いくつかの変更を加える必要があります。

JavaScript 関数は、次のような値を返す必要があります。

<script type="text/javascript">
function checkFields()
{
    var x = document.getElementById("database").innerHTML;
    if(x=="")
    {
        alert("You forgot to enter a database name");
        return false;
    }
    return true;
}
</script>

入力ボタンを次のように変更する必要があります。

<input type="submit" onclick="return checkFields();" />
于 2012-06-25T21:36:43.607 に答える
1

イベント ハンドラー (フォームの送信やリンクのクリックなど) を離れた後にイベントが継続するのを JavaScript で停止させたい場合は、イベント ハンドラーから単に false を返します。

function checkFields() {
    var x = document.getElementById("database").innerHTML;
    if(x=="") {
        alert("You forgot to enter a database name");
        return false;
    }
}

また、フォームが送信された後に呼び出されるようにするには、フォームにイベント ハンドラーを添付する必要があります。

<form ... onsubmit="return checkFields()" ...

ただし、JavaScript でイベント ハンドラーをアタッチするこの方法は支持されなくなりました。それは機能しますが、より良い方法があります。

于 2012-06-25T21:01:41.710 に答える
0
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
}

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>

フォームを送信するときに、関数 (この場合は検証関数) を実行する必要があることを伝えたいと思うでしょう。これは、onsubmit="function()" Return false で行われ、スクリプトの実行が中止されます。

于 2012-06-25T21:01:18.663 に答える
0
function checkFields()
{
    var x = document.getElementById("database").innerHTML;
    if(x=="")
    {
        alert("You forgot to enter database name");
        return false;
    }
    return true;
}
</script>

入力ボタン部分が最も重要です。必ず関数を返す

 <input type="submit" onclick="return checkFields();" />
于 2013-02-21T13:16:37.093 に答える