В момента използвам модален компонент на Twitter Bootstrap и имам проблем, при който използвам плъгин за валидиране на jquery на полета за въвеждане в съдържанието, което зареждам дистанционно, използвайки атрибута data-remote.
Тъй като съдържанието се зарежда, след като валидирането на jquery е преминало през dom, валидирането не се извършва за новозаредените елементи.
Имам решение, при което променям bootstrap.js (модалния клас), вижте по-долу.
var Modal = function (element, options) {
this.options = options
this.$element = $(element)
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
//this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
this.options.remote && this.$element.find('.modal-body').load(this.options.remote, $.proxy(function () {
this.$element.trigger('loaded')
}, this)) //my additions
}
Задействам събитие „заредено“ към повикването, което зарежда външния html фрагмент.
Вече имам свързано това събитие и извиквам валидирането на новозаредените елементи.
$('#myModal').on('loaded', function () {
$.validator.unobtrusive.parse($(this));
});
Проблемът ми е, че трябваше да модифицирам bootstrap.js, за да постигна това, има ли начин да накарам това да работи външно, без да модифицирам bootstrap.js? Има ли начин за достъп до модалния обект на страница и прикачване на събитието „заредено“ към него? Бих искал да направя това във външен скрипт или в рамките на страница, така че да не се притеснявам за версиите за първоначално зареждане.
shown
на модала? - person mccannf   schedule 23.09.2013