2012-04-30 18 views
0

jQueryでフォームを検証するための簡単なスクリプトを作成しました。 は、これらは、ボタンを提出されています[キャンセル]ボタンを押すとJQuery - 予想通りにフォームが送信されない

<button type="submit" id="submitCrear" name="submitCrear">Confirm</button> ---->Cancel button 
<button type="submit" value="cancelar" name="cancelar" id="btnCancelar">Cancel</button> ---->Confirm button 

、フォームが検証を一切せずに送信する必要があります。 opossiteにはConfirmボタンが必要です。

これは私が理解していないことです:確認ボタンを押すと、検証プロセスは正常に開始されますが、キャンセルボタンを押すと、フォームはすべての検証が完了するまで送信されません(isValidForm変数は '真実である)。

<script type="text/javascript"> 
    var isValidForm; 
    $(document).ready(function() {    
     $('#btnCancelar').click(function() { 
      $('form').submit(); 
     }); 

     $('#submitCrear').click(function() { 
      $('form').submit(function(){ 
       return validarForm(); 
      }); 
     }); 
    }); 

    function validarForm(){ 
     isValidForm = true; 
     $("input:text").each(function(i) { 
      if(this.value == ''){ 
       if (!$("#errorMessage"+i).length > 0) 
        addErrorMessage(this, i, '*REQUERIDO'); 
       isValidForm = false; 
      }else{ 
       removeErrorMessage(this, i); 
      } 
     }); 
     $("input:password").each(function(i) { 
      if(this.value == ''){ 
       if (!$("#errorMessage"+(i+999)).length > 0) 
        addErrorMessage(this, (i+999), '*REQUERIDO'); 
       isValidForm = false; 
      }else{ 
       if(($(this).attr('id') == 'rePassword_r') && ($(this).val() != $("#password_r").val())){ 
        if ($("#errorMessage"+(i+999)).length > 0){ 
         removeErrorMessage(this, (i+999)); 
         addErrorMessage(this, (i+999), 'The password doesn't match.'); 
        } 
        isValidForm = false; 
       }else{ 
        removeErrorMessage(this, (i+999)); 
       } 
      } 
     }); 
     return isValidForm; 
    } 

    function addErrorMessage(element, indice, mensaje){ 
     ... 

    } 

    function removeErrorMessage(element, indice){ 
     ... 
    } 
</script> 

確認プロセスが開始されても[キャンセル]ボタンを使用してフォームを送信するにはどうすればよいですか?

ありがとうございます!あなたの二つのボタンと、次のjQuery

$(document).ready(function() {    
    $('#btnCancelar').click(function() { 
     $('form').submit(); 
    }); 

    $('#submitCrear').click(function() { 
     $('form').submit(function(){ 
      return validarForm(); 
     }); 
    }); 
}); 

を持って

答えて

1

のjQueryの後半部分は、フォームが送信されるときに、フォームの提出のに検証を割り当てたとして、それが検証されることを意味し、ボタンのクリックではなくどちらのボタンでも今は解雇されています。

設計上、ボタンをタイプして送信しないでフォームを送信しますか? jQueryを次のように変更するだけではありません:

$(document).ready(function() {    

    $('#submitCrear').click(function() { 
      return validarForm(); 
    }); 
}); 
+0

おかげさまでChris!それは働いている! – Lucas

関連する問題