1
投稿する前にポップアップフォームを検証するjavascript関数があります。残念ながら、ページごとに1つのポップアップフォームしか処理できません。
私の場合、私は2つの異なるポップアップフォームを持っていますので、何をするのか、どちらのものを指定したいのですか。一部のページで特定のフォームの検証を指定する
$.fn.goValidate = function() {
var $form = this,
$inputs = $form.find('input:text');
var validators = {
email: {
regex: /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/
}
};
var validate = function(klass, value) {
var isValid = true,
error = '';
if (!value && /required/.test(klass)) {
error = 'This field is required';
isValid = false;
} else {
klass = klass.split(/\s/);
$.each(klass, function(i, k){
if (validators[k]) {
if (value && !validators[k].regex.test(value)) {
isValid = false;
error = validators[k].error;
}
}
});
}
return {
isValid: isValid,
error: error
}
};
var showError = function($input) {
var klass = $input.attr('class'),
value = $input.val(),
test = validate(klass, value);
$input.removeClass('invalid');
$('#form-error').addClass('hide');
if (!test.isValid) {
$input.addClass('invalid');
if(typeof $input.data("shown") == "undefined" || $input.data("shown") == false){
$input.popover('show');
}
}
else {
$input.popover('hide');
}
};
$inputs.keyup(function() {
showError($(this));
});
$inputs.on('shown.bs.popover', function() {
$(this).data("shown",true);
});
$inputs.on('hidden.bs.popover', function() {
$(this).data("shown",false);
});
$form.submit(function(e) {
$inputs.each(function() {
if ($(this).is('.required') || $(this).hasClass('invalid')) {
showError($(this));
}
});
if ($form.find('input.invalid').length) {
e.preventDefault();
$('#form-error').toggleClass('hide');
}
});
return this;
};
$('form').goValidate();
私はそれがすべての行についてだとかなり確信している:
$('form').goValidate();
はのは、最初のフォームIDがform_1と第二form_2であることを言ってみましょう。 私はこの行に何を置くべきですか?このような 何かは私が推測する:
$('form['form_1]').goValidate();
は、それは明らかだったホープ、ありがとう!
あなたは '$( '#form_1')と書くでしょう。goValidate();' 'form_1'が最初のフォームのidであると仮定します。 –
ロック!どのような迅速な応答、おかげで電車! :) – Remis07