Переопределение метода prototype.js
-
05-07-2019 - |
Вопрос
Я пытаюсь переопределить метод Form.Element.disable () в PrototypeJS, чтобы он добавлял пользовательский класс к отключенным элементам формы.
Я добавил:
Form.Element.disable = function(element) {
element = $(element);
element.blur();
element.disabled = true;
element.addClassName("disabled");
return element;}
на страницу после загрузки prototype.js - это работает, если вызывается напрямую, например
Form.Element.disable("myInputBox");
Но оригинальный метод PrototypeJS используется, если я вызываю
$("myInputBox").disable();
Я знаю, что это как-то связано с " областью действия " в котором я определяю это - я эффективно создаю новый экземпляр метода disable (), но я не знаю, как сместить область видимости, чтобы она заменила исходную версию PrototypeJS.
Куда я иду не так?
Решение
Form.Element.addMethods({
disable: function(element) {
// stuff here
}
});
А если это не сработает: http://api.prototypejs.org/ дом / элемент / addMethods /
Element.addMethods(["input", "textarea", "select"], {
disable: function(element) {
// stuff here
}
});
Другие советы
Form.Element.prototype.disable = function(element) { ... }
Не связан с StackOverflow