.setAttribute js.

.setAttribute js.
2011-08-09T10:14:19+02:00
2011-08-15T17:06:57+02:00
2022-08-15T17:45:33+02:00
gabordx
Hali!
function specHide(value) { switch (value) { case 5: case 6: case 8: disable('gender',true); disable('size',true); break; default: disable('gender', false); disable('size',false); } } function disable(id, bool) { var elemenet = document.getElementById(id); if (bool) elemenet.setAttribute('disabled', 'disabled'); else elemenet.removeAttribute('disabled'); }
Ez a javascript.
<select name="maincat" onchange="specHide(this.value);"> ...
Ez ami meghívja.
<select name="gender" id="gender"> <select name="size" id="size">
És ezek amiket módosít.

Ebben a formában nem működik. :S
De így igen:
function disable(id, bool) { var elemenet = document.getElementById(id); elemenet.setAttribute('disabled', 'disabled'); if (bool) elemenet.setAttribute('disabled', 'disabled'); else elemenet.removeAttribute('disabled'); }

Persze csak "letiltja" de akkor is működik miért van ez?
Mutasd a teljes hozzászólást!
nekem is volt ilyen problemam a readonly attributumok hozzaadasaval es eltavolitasaval.

a setAttribute tokeletesen mukodott, de a remove nem.

probald igy:
removeAttribute('disabled', 0);
Mutasd a teljes hozzászólást!

  • A disable() függvényedben a element.disabled= bool utasítással lerövidítheted egy kicsit a kódod:

    <html> <head> <script> function specHide(value) { switch (value) { case "5": case "6": case "8": disable('gender',true); disable('size',true); break; default: disable('gender', false); disable('size',false); } } function disable(id, bool) { var element = document.getElementById(id); element.disabled= bool; } </script> </head> <body> <select name="maincat" onchange="specHide(this.value)"> <option value="5">5</option> <option value="6">6</option> <option value="8">8</option> <option value="egyeb">egyeb</option> <select><br /> <select name="gender" id="gender"></select> <select name="size" id="size"></select> </body> </html>
    Mutasd a teljes hozzászólást!
  • Így se jó. :(
    Mutasd a teljes hozzászólást!
  • a fenti kódom tökéletesen működik, más kérdés, hogy a te implementációd hol hibázik.

    Persze csak "letiltja" de akkor is működik miért van ez?


    ezt a kérdés egyébént nem teljesen világos, kicsit részletezhetnéd az elképzelésed.
    Mutasd a teljes hozzászólást!
  • function disable(id, bool) { var elemenet = document.getElementById(id); if (bool) elemenet.setAttribute('disabled', 'disabled'); else elemenet.removeAttribute('disabled'); }
    Így nem működik.
    function disable(id, bool) { var elemenet = document.getElementById(id); elemenet.setAttribute('disabled', 'disabled'); if (bool) elemenet.setAttribute('disabled', 'disabled'); else elemenet.removeAttribute('disabled'); }
    így meg igen de, ha megnézed beszúrtam egy ilyen sort oda:
    elemenet.setAttribute('disabled', 'disabled');
    Szóval a bool-nak már nincs szerepe így "csak letiltja".
    Tehát if-en kívül működik. :S
    Mutasd a teljes hozzászólást!
  • nekem is volt ilyen problemam a readonly attributumok hozzaadasaval es eltavolitasaval.

    a setAttribute tokeletesen mukodott, de a remove nem.

    probald igy:
    removeAttribute('disabled', 0);
    Mutasd a teljes hozzászólást!
abcd