大丈夫です!私はこの後、このことを働かせました。問題は、ユーザーが修正したエラーを削除し、同じエラーを2回以上使用しないようにする方法を理解することでした。ここで
がそれを可能にしたコードです:
Parsley.js - Display errors near fields AND in a combined list above form
:
$(function() {
// validate form
$('#main-form').parsley({
triggerAfterFailure: 'input change',
});
// Convenience members
$.validationErrors = {
container: $('.error-wrapper'),
list: $('.catch-errors'),
updateContainer: function() {
// Hide/show container if list is empty/full
$.validationErrors.container.toggleClass("filled", $.validationErrors.list.find("li:first").length > 0);
},
removeItem: function(sFieldName) {
// Remove related error messages from list
$.validationErrors.list.find('li[data-related-field-name="' + sFieldName + '"]').remove();
}
};
// Before each validation, clear the validation-errors of the div
$.listen('parsley:form:validate', function() {
$.validationErrors.list.html();
});
// When a field has an error
$.listen('parsley:field:error', function(ParsleyField) {
var fieldName = ParsleyField.$element.attr('name');
$.validationErrors.removeItem(fieldName);
// Get the error messages
var messages = ParsleyUI.getErrorsMessages(ParsleyField);
// Loop through all the messages
for (var i in messages) {
// Create a message for each error
var fieldLabel = ParsleyField.$element.closest("div").find("label:first");
var fieldLabelText = fieldLabel.clone().children().remove().end().text().trim();
var fieldName = ParsleyField.$element.attr("name");
var $m = $('<li data-related-field-name="' + fieldName + '"><a data-related-field-name="' + fieldName + '" href="#na"><strong>' + fieldLabelText + '</strong> - ' + messages[i] + '</a></li>');
$.validationErrors.list.append($m);
}
$.validationErrors.updateContainer();
});
$.listen('parsley:field:success', function(ParsleyField) {
$.validationErrors.removeItem(ParsleyField.$element.attr('name'));
$.validationErrors.updateContainer();
});
// When there's a click on a error message from the div
$(document).on('click', 'a[data-related-field-name]', function() {
// take the field's name from the attribute
var name = $(this).attr('data-related-field-name');
$("[name=" + name + "]").focus();
});
});
はちょうどそれを明確にする、これは私がここにこの記事から多くの援助を持っていたように私がやって100%ではありません私は、私が持っているのと同じ問題を抱えている人を助けることを願っています。上記のコードを使用して説明を必要とする人や助けが必要な人は、コメントを残すか、私に私的なメッセージを送ってください。
乾杯!
まあ、はい。それはまさに私が心に留めていることです。問題は、どうやってこれをやることができないかということです。 –