-1

パスワードが一致しないことを確認するエラーメッセージが表示されますが、データベースに新しいリストが追加されます。スクリプトがフォームの送信を停止するようにするには、何をする必要がありますか?コーディングについての私の理解は非常に弱いです!

<script src="scripts/jquery.js" type="text/javascript">
jQuery(function(){
  $("#submit").click(function(){
    $(".error").hide();
    var hasError = false;
    var passwordVal = $("#password").val();
    var checkVal = $("#repeatpassword").val();
    if (passwordVal == '') {
      $("#password").after('<span class="error">Please enter a password.</span>');
      hasError = true;
    } else if (checkVal == '') {
      $("#repeatpassword").after('<span class="error">Please re-enter your password.</span>');
      hasError = true;
    } else if (passwordVal != checkVal ) {
      $("#repeatpassword").after('<span class="error">Passwords do not match.</span>');
      hasError = true;
    }
    if(hasError == true) {return false;}
  });
});
</script>
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">First name:</td>
      <td><input type="text" name="firstname" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Last name:</td>
      <td><input type="text" name="lastname" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Email:*</td>
      <td><input type="text" name="email" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Password:*</td>
      <td><input type="password" name="password" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Repeat Password:*</td>
      <td><input type="password" name="repeatpassword" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right" valign="top">Channel url:*</td>
      <td><textarea name="channelurl" cols="50" rows="1"></textarea></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Channel name:*</td>
      <td><input type="text" name="chanelname" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Description:</td>
      <td><textarea name="description" cols="32" rows="6"></textarea></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Video 1:* </td>
      <td><input type="text" name="embedd1" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">What game is it?</td>
      <td><input type="text" name="game1" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Video 2:</td>
      <td><input type="text" name="Embedd2" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">What game is it?</td>
      <td><input type="text" name="game2" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Keywords to describe and find your channel*</td>
      <td><input type="text" name="keywords" value="" size="32"></td>  
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type="submit" value="Channel Create"></td>
    </tr>
  </table>
  <input type="hidden" name="chanelID" value="">
  <input type="hidden" name="MM_insert" value="form1">
</form>
4

2 に答える 2

3

フォームの送信イベントにバインドしてから、デフォルトのアクションを完全に防止し、送信したいときにのみ送信することをお勧めします。

$("#formid").submit(function(event){
   event.preventDefault();

   // validate form
   var valid = true;

   if (valid) {
       this.submit();
   }
});

これにより、エラーやロジックの問題が原因でフォームが誤って送信されるのを防ぐことができます (ロジックの問題に の値が含まれている場合を除くvalid)。

于 2012-10-22T21:12:55.417 に答える
0

ボタンのclick()イベントではなく、フォームのsubmit()イベントにバインドしてみてください。

したがって、3 行目では、代わりに

$("#submit").click(function(){

使用する

$("form").submit(function(){
于 2012-10-22T21:16:52.543 に答える