2012-02-21 5 views
3

でフォームを送信すると、これは私のコードです:jqueryの検証は、リンク

<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script> 
<script type="text/javascript" src="js/jquery.validate.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("#alta").validate(); 
}); 
</script> 
<form id="alta" method="post" action="<?= $this->Html->url('/'); ?>alta"> 
    <label>Nombre:</label> 
    <input type="text" id="name" class="field required" name="data[name]"> 
</form> 
<a href="#" onClick="alta.submit(); return false;" id="button" class="button">Send</a> 

そして、私の問題は、私はリンクを使用する必要があり、入力を提出し使用していないが、フォームや無効を提出します。

ありがとう

+0

のonClick = "alta.submitを()のと同じ効果がありますの

答えて

7

でフォームを検証する必要がいけない

(コメントを読んだ後)も
$("#button").click(function(e){ 
    e.preventDefault(); 
    if($("#alta").valid()){ 
     //submit 
     $("#alta").submit(); 
    } 
    else 
     return false; 
    }); 

は、手動で有効です。

まず、HTMLからonclick属性を削除します。これは、イベントを追加する良い方法ではありません。

<a href="#" id="button" class="button">Send</a> 

次に、あなたのjQueryのコードでこれを置く:

$("#button").click(function() { 
    if ($("#alta").valid()) { 
     $("#alta").submit(); 
    } 
}); 
2

クリックハンドラーの内部でフォームを検証します。あなたは、フォームをチェックする必要があり、送信ボタンがなければ、文書準備