Вопрос

Я пытаюсь переопределить метод 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) { ... }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top