-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

Try binding to the form's submit() event instead of the button's click() event.

So, on the third line, instead of

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

Use

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