私は最初の jQuery 関数を試しています。必要なのは、フォームが機能に割り当てられることです。ユーザーが送信ボタンをクリックすると、最初に関数内の各 :input フィールドで検証を行う必要があります。
関数のセレクターとしてフォームを割り当てています。
$("form[name='form_name']").validator();
これは関数に渡され、「selected_form」という関数プロパティに割り当てられます。私の jQuery 関数内には、送信ボタンがクリックされるのを待つ必要がある別の関数があり、その後、すべての :input フォーム要素を反復処理して単純な検証を処理する必要があります。
現在の問題は次のとおりです。
a) jQuery 関数内でreturn validate();
Validate を呼び出し、ボタンがクリックされたかどうかを確認します。関数が実行され、ボタンがクリックされなかったため、関数は続行され、基本的にチェックを行わずに validate() 関数を false として返すと思われます。ボタンが押されるまでほとんど待つようにこれをカスタマイズする必要があると思いますが、それを行う方法が本当にわかりません。
b)$(selected_form+" :input").each(function() { ... }
それを選択済みとして使用できないように見えるため、機能しません。「selected_form」プロパティを繰り返し処理し、:input フィールドのみを選択する必要があります。何か援助はありますか?
c) 適切な jQuery 関数の構築に関して他に提案やベスト プラクティスがある場合は、助けてください。これは私の最初の試みです。
(function($) {
$.fn.validator = function(user_options) {
var default_options = {
exclusions: false,
rules: false,
submit_btn_name: 'event_form_submit'
};
var selected_form = this;
var selected_element = false;
var element_type = false;
var options = $.extend(default_options,user_options);
function validate() {
// Run only if form has been submitted: (this does not appear to work now, the form gets submitted without the return false;
$("input[type='"+options.submit_name+"']").click(function(event) {
event.preventDefault();
// The selector here appears to be wrong?
$(selected_form+" :input").each(function() {
// Individual element validation will happen here, for now I am just looking to log the element types :)
selected_element = this;
console.log(get_element_type());
});
return false;
});
return false;
};
function get_element_type() {
return element_type = element.type;
}
return validate();
}
})(jQuery);
// Run the validator:
$(document).ready(function() {
$("form[name='tepg_form_processor']").validator();
});