У меня есть страница, которая содержит ссылку, которая откроет окно (через Bootstrap), которое содержит форму для добавления кредитной карты. На этой странице также есть список кредитных карт с ссылкой на редактирование. Когда это будет нажато, оно откроет окно (через Bootstrap) с помощью формы кредитной карты редактирования.Проверка нескольких форм с одинаковой функцией в jquery
Для обеих форм есть тег div с именем «errorMsgs» над полями формы, в которые идут сообщения об ошибках. Я хочу проверить формы с помощью той же функции jquery.
Что происходит, так это то, что валидация работает для добавления кредитной карты, а сообщение об ошибке отображается в разделе divMsgs. Однако для формы кредитной карты редактирования проверка работает, но не появляется сообщение. Я подозреваю, что сообщение добавляется в div-раздел «errorMsgs» формы добавления, а не в редактор, потому что они находятся на одной странице.
Мне было интересно, как мне добавить его в тег «errorMsgs» кредитной карты, которую вы сейчас редактируете? Поскольку у клиента может быть более одной кредитной карты в файле, может быть несколько форм кредитной карточки редактирования. Я думал, что все еще могу использовать тот же ID, но передаю текущую форму как «параметр», чтобы он мог идентифицировать правильный тег div, чтобы добавить сообщение, но я не слишком уверен, как это сделать.
Ниже представлена упрощенная версия моего кода: функция
JQuery:
function validateCC(selector) {
var form = $(selector);
form.validate({
invalidHandler: function(event, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = ' ';
message += '<p>Please correct the following errors:<br />';
message += '<ul>\n';
if (validator.errorList.length > 0) {
for (x=0;x<validator.errorList.length;x++) {
message += '<li>' + validator.errorList[x].message + '</li>\n';
}
}
message += '</ul>\n';
message += ' </p>\n';
$("#errorMsgs").show();
$("#errorMsgs").addClass("alert-error");
$("#errorMsgs").html(message);
} else {
$("#errorMsgs").hide();
}
},
rules: {
customercc_ccnum: {
minlength: 12,
required: true
}
},
messages: {
customercc_ccnum: {
required: "Number is required.",
minlength: "Number should have at least 12 characters."
}
}
});
}
$('.ccForm').click (function(){
validateCC('.ccForm');
});
Добавить форму кредитной карты:
<form name="ccForm" class="ccForm" action="#myself#mcustomercc.add" method="post" id="submitCC">
<div class="row">
<div class="span7">
<div id="errorMsgs"></div>
</div>
</div>
<div class="row">
<div class="control-group">
<div class="span2"><b>Credit Card Number:</b> <b class="mandatory">*</b></div>
<div class="span5">
<input type="text" name="customercc_ccnum"
size="17"
value=""
placeholder="Credit Card Number"
id="customercc_ccnum"
>
</div>
</div>
</div>
<div class="row">
<div class="span7">
<input type="submit" name="addCC" value="Add" />
</div>
</div>
</form>
Изменить форму кредитной карты:
<form name="ccForm" class="ccForm" action="#myself#mcustomercc.update" method="post" id="editCC">
<div class="row">
<div class="span7">
<div id="errorMsgs"></div>
</div>
</div>
<div class="row">
<div class="control-group">
<div class="span2"><b>Credit Card Number:</b> <b class="mandatory">*</b></div>
<div class="span5">
<div class="controls">
<input type="text" name="customercc_ccnum"
size="17"
value="4111111111111111"
placeholder="Credit Card Number"
id="customercc_ccnum"
>
</div>
</div>
</div>
</div>
<div class="row">
<div class="control-group">
<div class="span7">
<div class="controls">
<input type="hidden" name="customercc_id" value="87">
<input type="submit" name="editCC" value="Edit" />
</div>
</div>
</div>
</div>
</form>
A помощь будет оценена!
Джейсон
Это работает как идеальное объяснение – comeOnGetIt