2009-06-15 26 views
0
私は次のように私のフォームアクションスクリプトがある link text

PHPとjQueryのフォーム検証

のチュートリアル次の検証を設定しています

:私は削除すると

<form method="POST" action="formproc_to_paypal.php" id="example" 
    target="_self" onsubmit="CalcAmount (this); ReadForm(this);" name="example"> 

は/アクションラインを変更(として「」へチュートリアルが示すように)検証はうまく動作します。なぜアクションがそれを検証しない原因になるのか?この

function validate(form){ 
return(CalcAmount (form) && ReadForm(form)); 
} 

よう

<script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script> 
<style type="text/css"> 
label { width: 10em; float: left; } 
label.error { float: none; color: red; padding-left: .5em; vertical-align: top; } 
p { clear: both; } 
.submit { margin-left: 12em; } 
em { font-weight: bold; padding-right: 1em; vertical-align: top; } 
</style> 
    <script> 
    $(document).ready(function(){ 
    $("#example").validate(); 
    }); 
    </script> 
+0

検証ロジックのような詳細を投稿できますか?最初の推測では、送信時に2つの検証関数を呼び出しています。最初の検証関数が2番目の検証関数をスキップします。しかし、詳細なしで言うのは難しいです... –

+0

マイク、あなたは正しいかもしれません。私のPHPスクリプトでも同様の機能があり、PHPスクリプトはフォーム変数を呼び出し、それらをPayPalに転送します。これが妥当性確認を妨害するでしょうか? –

+0

私はマイクが正しいと思います。明示的に定義されたonsubmitイベントは、jQuery経由で呼び出されたvalidate()関数を破っている可能性があります。それらを取り出して何が起こるかを見てみましょうか?また、チュートリアルにはライブフォームではないため、アクション属性はありません。 "チュートリアル"は実際の実装の良い例ではないので、残りのドキュメントを読んでください。 –

答えて

0

何かが心の中で、この非常に迅速な実装をしてください、あなたはいくつかの詳細を追加する必要があります。一般的な考え方には、結果の組み合わせに基づいて単一のブール値を返す1つの関数があります。

1

すべてのjavascript呼び出しの後でfalseを返すようにしてください。そうしないと、javascriptが完了すると、アクションにサブミットされます。

これは、アクションが指定されていない場合でも動作する理由です。