webForumDet fria alternativet

Disable/undisable mha checkbox

JavaScriptur Javascript

3 svar · 513 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

Jag har en form för att ladda upp nya frågesportar från en fil. Nu håller jag på att skriva om den och vill ha med mer funktionalitet. Bland annat vill jag ange befintliga kategorier och fil som avgör hur frågesporten ser ut på sidan, via varsin drop-down. Dessutom kan man skriva in nya värden i ett efterföljande textfält. Så långt är det enkelt. Men sedan vill jag förhindra att man både väljer en befintlig OCH skriver in en ny. Detta bör ju gå att lösa enkelt med JS, tycker jag. :OO Nedan är min icke-fungerande kod:

<form method="post" name="readQz" action=".../readQuizTst.php" >
<tr><td>File</td><td colspan="3"><input type="text" name="fname" ></td></tr>
<tr><td>Category</td><td><select name="CatNr" id=""><option value="0" class="colContrast" >Choose Category</option>
<option value="1"  >Books</option>
<option value="2"  >Movies</option>
</select></td>
     <td><input type="checkbox" name="addCat" id="addCat" onChange="formSwitch('addCat', 'CatNr', 'NewCat')"> Or add a new </td>
     <td><input type="text" name="NewCat" id="NewCat" size="20" disabled="disabled" ></td></tr>
<tr><td>Quiz Motor</td><td><select name="Qfile" id="">
<option value="ordinaryQuizFuncs.php"  >ordinaryQuizFuncs.php</option>
<option value="quoteQuiz.php"  >quoteQuiz.php</option>
</select></td>
     <td><input type="checkbox" name="addFile" id="addFile" onChange="formSwitch('addFile', 'Qfile', 'NewQfile')"> Or add a new </td>
     <td><input type="text" name="NewQfile" id="NewQfile" disabled="disabled"> </td></tr>
<tr><center>
<input class="buttonColorG" type="submit" name="submitUpload" value="Upload" >
</center></td></tr></form></table>

Med tillhörande JS-funktion:

function formSwitch(myID, chooseID, newID) {
   var cBox = document.getElementById(myID);
   var chooseBox = document.getElementById(chooseID);
   var newBox = document.getElementById(newID);

   if (cBox.checked = false) {
   	chooseBox.disabled = false;
   	newBox.disabled = true;
   }
   else{
   	chooseBox.disabled = true;
   	newBox.disabled = false;
   }

}

När sidan laddas är checkboxarna tomma och new-fälten disablade. Tyvärr går det inte att kryssa i checkboxarna??? Varför? :q :x

Medlem sedan mars 20034 471 inlägg
#2

Det blir roligare och roligare... eller inte. :x

Ovanstående beteende är Firefox.

För IE, däremot, så händer följande:
När sidan laddas är checkboxarna urbockade och textfälten disablade.

  1. Jag bockar i addCat. Detta funkar och nu kan jag skriva i NewCat.
  2. Jag börjar skriva i NewCat. Då händer två saker: addCat blir urbockad och chooseCat disablas. ??? :q
  3. Oavsett om jag bockar i (eller ur) addCat igen så förblir chooseCat disablad och jag kan fortsätta skriva NewCat (varje gång musen tar fokus på newCat bockas addCat ur om den inte redan är ur).

Detsamma gäller för Qfile-raden.

Hur i självaste går detta till och hur löser jag det???

Medlem sedan jan. 2003296 inlägg
#3

1.

if (cBox.checked = false) {

innehåller (minst) ett likhetstecken för lite. Just nu är det ingen jämförelse alls.
2. Om du vill använda document.getElementById() på dina select-boxar, vilket du ser ut att vilja göra, får du nog ge dem vettiga id:n också :-) I IE kollar document.getElementById() även name-attributen tror jag, men alla webbläsare lär inte göra det.

Medlem sedan mars 20034 471 inlägg
#4

Ååååh! Det första min blir blind på....

256 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
254 ms — hämta tråd, inlägg och bilagor (db)