29. maj 2003 - 20:08
Der er
8 kommentarer og 1 løsning
Disable ved radio-knapper i form
Se nedenstående kode: <form method="post" action="default.asp"> 1<input type="radio" name="modtager" checked="true" /><br /> 1.1<input type="checkbox" onclick="this.form.modtager_navn_1.disabled=!this.checked;" /> <input type="text" name="modtager_navn_1" value="Navn 1" disabled="true" /><br /> 2<input type="radio" name="modtager" /><br /> 2.1<input type="checkbox" onclick="this.form.modtager_navn_2.disabled=!this.checked;" /> <input type="text" name="modtager_navn_2" value="Navn 2" disabled="true" /><br /> </form> Hvis man vælger '1' skal kun den og '1.1' være aktiveret. Det vil sige, at '2.1' skal være 'disabled'. Omvendt hvis man vælger '2'. Hvis man har 'checked' '1.1' og derefter vælger '2' og vælger '1' igen, skal '1.1' være aktivt og 'checked'. Formen skal med andre ord huske, hvad man valgte sidst et punkt ('1' eller '2') var valgt. Hvordan gør man det?
Annonceindlæg fra Cognizant
Mener du noget i denne retning: <form method="post" action="default.asp"> 1<input type="radio" name="modtager" checked="true" onclick="this.form.modtager_checknavn_1.disabled=false;this.form.modtager_checknavn_2.disabled=true" /> <br /> 1.1<input type="checkbox" name="modtager_checknavn_1" onclick="this.form.modtager_navn_1.disabled=!this.checked;" /> <input type="text" name="modtager_navn_1" value="Navn 1" disabled /><br /> 2<input type="radio" name="modtager" onclick="this.form.modtager_checknavn_2.disabled=false;;this.form.modtager_checknavn_1.disabled=true" /> <br /> 2.1<input type="checkbox" name="modtager_checknavn_2" onclick="this.form.modtager_navn_2.disabled=!this.checked;" disabled /> <input type="text" name="modtager_navn_2" value="Navn 2" disabled /><br /> </form>
Noget i den retning, men hvis feltet 1.1 vælges og 2 derefter vælges, skal 1.1's input-felt også deaktiveres. Når 1 vælges igen, skal 1.1's input-felt lives op igen.
Så forsøger jeg igen -- jeg burde nok have flyttet noget kode til funktioner da det ikke er ret kønt med if-sætninger i oncliket <form method="post" action="default.asp"> 1<input type="radio" name="modtager" checked="true" onclick="this.form.modtager_checknavn_1.disabled=false;this.form.modtager_checknavn_2.disabled=true;if (this.form.modtager_checknavn_1.checked) {this.form.modtager_navn_1.disabled=false} else {this.form.modtager_navn_1.disabled=true};this.form.modtager_navn_2.disabled=true;" /> <br /> 1.1<input type="checkbox" name="modtager_checknavn_1" onclick="this.form.modtager_navn_1.disabled=!this.checked;" /> <input type="text" name="modtager_navn_1" value="Navn 1" disabled /> <br /> 2<input type="radio" name="modtager" onclick="this.form.modtager_checknavn_2.disabled=false;;this.form.modtager_checknavn_1.disabled=true;if (this.form.modtager_checknavn_2.checked) {this.form.modtager_navn_2.disabled=false} else {this.form.modtager_navn_2.disabled=true};this.form.modtager_navn_1.disabled=true;" /> <br /> 2.1<input type="checkbox" name="modtager_checknavn_2" onclick="this.form.modtager_navn_2.disabled=!this.checked;" disabled /> <input type="text" name="modtager_navn_2" value="Navn 2" disabled /> <br /> </form>
Super, det virker efter hensigten. Du må bare lige oprette et svar...
>>jytte 21:26:50 kommentaren ;O)
À propos jytte, så kunne du gøre det lidt mere direkte: if (this.form.modtager_checknavn_1.checked) {this.form.modtager_navn_1.disabled=false} else {this.form.modtager_navn_1.disabled=true}; kunne laves: this.form.modtager_navn_1.disabled=!this.form.modtager_checknavn_1.checked
Ja det har du ret I -- det er meget enklere.
>> jeg kiggede jo heller ikke efter den, da jeg skrev den forrige kommentar, men det er nok værd at have i hovedet -- sp. i direkte script ... ;-)
Vi tilbyder markedets bedste kurser inden for webudvikling