Переопределение метода prototype.js - PullRequest
1 голос
/ 26 ноября 2009

Я пытаюсь переопределить метод 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.

Куда я иду не так?

Ответы [ 2 ]

3 голосов
/ 26 ноября 2009
Form.Element.addMethods({
    disable: function(element) {
        // stuff here
    }
});

И если это не сработает: http://api.prototypejs.org/dom/Element/addMethods/

Element.addMethods(["input", "textarea", "select"], {
    disable: function(element) {
        // stuff here
    }
});
0 голосов
/ 26 ноября 2009
Form.Element.prototype.disable = function(element) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...