私は、Parsley.jsを使用してフロントエンドを検証し、非同期で提出するフォームを作成しようとしています。フォームは#contactFormと呼ばれ、送信ボタンは#sendDataです。空または無効なフォームでsubmitを押すとエラーになります。無効なフォームデータから「エラー」アラートが表示されることが予想されますが、代わりにElse条件が続き、データはcontactForm.phpによって処理されます。parsley.jsを使用した非同期フォームの提出
$(document).ready(function() {
// submit data on click and check if valid
$('#sendData').click(function(e) {
//check if valid with parsley
var valid = $('#contactForm').parsley ('validate');
if (valid === false)
{
e.preventDefault();
}
else
{
$.post("contactForm.php", $("#contactForm").serialize());
}
});
});
以下の適切なソリューションを提供します。
検証結果がブール値の場合、条件は 'if(!valid)'または 'if(valid === false)'でなければなりません。また、クリックハンドラにパラメータ 'e'を追加し、イベントをキャンセルするために' false'を返す代わりに 'e.preventDefault();'を実行することを検討してください。 – plalx
[自分のサイト](http://parsleyjs.org/documentation.html#parsleyform)には、デフォルトの処理を上書きするために、フォームから 'data-validate =" parsley "属性を削除する必要があることも記載されています。 – plalx
アドバイス@plalxありがとうございます。フォームの属性からdata-validate = "parsley"を削除し、ブール値の条件を修正しました。何らかの理由で私はまだ同じ問題を抱えています。 私を忘れてください。私はあなたのコメントを誤解し、それを解決しました。再度、感謝します。 – nobody