Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   атрибут disabled (https://javascript.ru/forum/events/8042-atribut-disabled.html)

pingvinchic 04.03.2010 14:43

атрибут disabled
 
Имеется три текстовых поля
<input type="text" name="name" id="name" value="{NAME}" {DISABLED1}>
<input type="text" name="link" id="link" value="{LINK}" {DISABLED2}>
<input type="text" name="plan" id="plan" value="{PLAN}" {DISABLED3}>


в {DISABLED1}, {DISABLED2}, {DISABLED3} в зависимости от условия передается или не передается атрибут disabled

как сделать так, чтобы, если этот атрибут присутствует он убирался по нажатию кнопки
<input type="submit" name="save" id="save" value="Сохранить" alt="Сохранить">

или кнопки
<input type="submit" name="use" id="use" value="Применить" alt="Применить">

?

neurostep 04.03.2010 15:14

<form id="form">
<input type="text" name="name" id="name" value="{NAME}" {DISABLED1}>
<input type="text" name="link" id="link" value="{LINK}" {DISABLED2}>
<input type="text" name="plan" id="plan" value="{PLAN}" {DISABLED3}>
<input  type="submit" name="use" id="use" value="Применить" alt="Применить">
</form>


var inputs = [];
var candidates = document.getElementById('form').getElementsByTagName('input');
for(var i=0; l=candidates.length; i<l; i++) {
    if(candidates[i].type == 'text') inputs.push(candidates[i]);
}

var controller = document.getElementById('form');
controller.onsubmit = function(e) {
    for(var i=0; i<inputs.length; i++) {
        var input = inputs[i];
        if(input.disabled == true) {
            input.disabled = false;
        }
    }
    return false;
}

pingvinchic 04.03.2010 16:09

:( ошибку показывает на 3 строчке

и как привязать сразу к двум кнопкам?

neurostep 04.03.2010 16:15

for(var i=0; var l=candidates.length; i<l; i++) {
    if(candidates[i].type == 'text') inputs.push(candidates[i]);
}


действие повешено на событие onsubmit, поэтому должно сработать независимо от того, по какой кнопки кликнуть.
а если форма должна "отправиться", то уберите return false;

pingvinchic 04.03.2010 16:23

дело в том, что там 4 кнопки, а действие нужно только для этих двух

neurostep 04.03.2010 16:36

А в чем проблема, вешайте тогда это действие на событие onclick нужных кнопок.
Про события можно почитать тут


Часовой пояс GMT +3, время: 09:06.