2

テーブルからデータを取得し、テキストボックスにデータを表示して、ユーザーがレコードを更新できるようにするページを作成しています。テキストボックスへのユーザー入力も検証します。しかし問題は、ユーザーがフィールドを変更せずに送信をクリックすると、ユーザー名フィールドが検証されます。つまり、常にテキストボックスの値を変更 (またはテキストボックスを編集) したいということです。

これが私のコードです:

<?php
include("conn.php");
$id=$_GET['id'];
$sql="SELECT * FROM test WHERE id='$id'";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
?>

<script type='text/javascript'>
function formValidator()
{
    // Make quick references to our fields
    alert("hiiiiiii");
    var name = document.getElementById('name').value;
    var email = document.getElementById('emailid').value;
    var ph = document.getElementById('ph').value;

    if( name=="" || name==null)
     {
         alert("Please Enter user name");
         return false;
     }
     var alphaExp = /^[a-zA-Z]+$/;
     if(!name.match(alphaExp))
      {
          alert("please Enter only Alphabates for Name");
          return false;
      }

      if(email=="" || email=="null")
      {
          alert("Please Enter Email Address");
          return false;
      }
      var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
      if(!email.match(emailExp))
       {
           alert("please Enter valide email address");
            return false;
       }
       if(ph=="" || ph=="null")
       {
           alert("Please Enter Phone Number");
           return false;
       }
       var numericExpression = /^[0-9]+$/;
       if(!ph.match(numericExpression))
       {
           alert("Enter only Digit for Phone Number");
           return false;
       }
}
</script>


<form name="updateform" method="POST" action="update_ind_new.php" onsubmit='return formValidator()'>
  <table width="200" border="0">
    <tr>
     <td>User Name</td>
      <td>E-Mail</td>
       <td>phno</td>
     </tr>
    <tr>
    <td><label>
        <input name="name" type="text" id="name" value=" <?php echo $row['name']; ?>" >
      </label></td>
      <td><label>
        <input name="email" type="text" id="emailid" value=" <?php echo $row['emailid']; ?>" >
      </label></td>
      <td><label>

        <input name="ph" type="text" id="ph" value=" <?php echo $row['phno']; ?>" >
      </label></td>

    </tr>
    <tr>
      <td> <input name="id" type="hidden" id="id" value=" <?php echo $row['id']; ?>"></td>
      <td><label>
        <input type="submit" name="Submit" value="Submit">
      </label></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
4

2 に答える 2

2

return true;この行の最後に書きます

   if(!ph.match(numericExpression))
   {
       alert("Enter only Digit for Phone Number");
       return false;
   }
   return true;
于 2012-09-21T04:40:09.183 に答える
1

return true;検証関数のすべての条件の最後に置く

または、「if else if else」条件に検証を入れます

于 2012-09-21T05:31:42.597 に答える