あなたの質問を要約してみましょう。
私が要約したことが本当なら、答えはjQuery Validationです。名前が示すように、これを機能させるには jQuery と jQuery Validation が必要です。
以下は、このツールの使用方法の例です。
HTML :
<form id="myForm">
<input type="text" name="currency">
<input type="text" name="amount">
</form>
Javascript:
$("#myForm").validate({
rules: {
"currency": {
minlength: 3,
required: true
},
"amount": {
number: true
}
}
});
デフォルトでは、検証は KeyUp でトリガーされます。したがって、ユーザーがフィールドの通貨を変更し、上記のルールのいずれかを破った場合、jQuery Validation はビルド前の通知メッセージを自動的に表示します。
上記のルールのビルド前のメッセージは次のとおりです。
- minlength: 少なくとも 3 文字を入力してください
- 必須: このフィールドは必須です
- 番号: 有効な番号を入力してください
通貨が為替レートの表で利用可能かどうかを検証したい場合はどうしますか?
答えは: カスタム検証メソッドを追加するだけです。
$.validator.addMethod("checkCurrency",
function(value, element) {
var result = false;
$.ajax({
type:"GET",
async: false,
url: "012_ajax.php", // script to validate in server side
data: {currency: value},
success: function(data) {
result = (data == "1") ? true : false;
}
});
// return true if currency is exist in database
return result;
},
"Currency is not exist."
);
$("#myForm").validate({
rules: {
"currency": {
minlength: 3,
required: true,
checkCurrency: true
},
"amount": {
number: true
}
}
});
このコードでは、ユーザーがテーブルに存在しない通貨を入力するたびに、フォームには常に「通貨が存在しません」というメッセージが表示されます。
最後の質問: このプラグイン用のカスタム メッセージを作成できますか?
答えはイエスです。
$("#myForm").validate({
rules: {
"currency": {
minlength: 3,
required: true,
checkCurrency: true
},
"amount": {
number: true
}
},
messages: {
"currency": {
minlength: "Currency should at least 3 char or more",
required: "Currency is required"
},
"amount": {
number: "Amount must be number"
}
}
});
ユーザーが上記のルールに違反するたびに、フォームは上記のコードの状態としてメッセージを提供します。
このプラグインの重要な点は、すべてのフォーム検証が行うべきことと同様に、データが検証されない限りデータが送信されないことです。まあ、ユーザーがブラウザからJavaScriptをオフ/無効にしない限り。:)
アップデート
上記の答えは、クライアント側の検証用です。
サーバー側の検証については、インターネット上に PHP フォーム検証スクリプトがあり、その中には次のものがあります。
- http://html-form-guide.com
- ソアレス
それらには組み込みの検証ルールがあり、ユーザーはカスタムのものを追加できます。
うまくいけば、この助け。