webForumDet fria alternativet

Disable på en input.

JavaScript

15 svar · 506 visningar · startad av roj

Medlem sedan apr. 2002179 inlägg
Frågan#1

Hej jag undrar hur jag ska ta mej till om jag vill att en input ruta ska bli disabled så fort jag skriver något i en annan input ruta eller ändrar något i en annan select ruta?

Medlem sedan juli 2000836 inlägg
#2

Exempel:

<form>
<input type="text" name="foo" onkeyup="document.forms[0].bar.disabled=(this.value!='')? true : false;"> 
<input type="text" name="bar"> 
</form>
Medlem sedan apr. 2002179 inlägg
#3

Funkar fint men om jag ska göra samma grej med en select ruta hur gör jag då för att trigga händelsen onkeyup funkar väll inte så bra?

Medlem sedan juni 20004 308 inlägg
#4
<form>
<select name="foo" onChange="this.form.bar.disabled=this[this.selectedIndex].value">
<option value="">Ingenting</option>
<option value="bla bla">Någonting</option>
</select>
<input type="text" name="bar">
</form>
Medlem sedan feb. 2003549 inlägg
#5

Tjena hur gör man denna tvärtom då?

onchange="document.forms[0].url.disabled=(this.value!='')? true: false;"

Har med en checkbox som när den är i kryssad ska göra url fältet enabled, kod:

Direkt Link:<input type="checkbox" name="link" size="45" value="Ja" onchange="document.forms[0].url.disabled=(this.value!='')? true: false;">
Url:<input type="text" name="url" size="45
Medlem sedan juni 200032 967 inlägg
#6
Direkt Link:<input type="checkbox" name="link" size="45" value="Ja" onchange="document.forms[0].url.disabled=(this.checked)? false: true;">
Url:<input type="text" name="url" size="45" disabled="disabled">

Verkar fungera aningen bättre i Mozilla än i IE dock.

Mvh

Medlem sedan feb. 2003549 inlägg
#7

åfan =) tackar! :birp

Medlem sedan feb. 2003549 inlägg
#8

dumma är bara att den funkar inte när sidan laddas utan först när jag tryckt på och av checkboxen en gång, hur löser jag det?

Medlem sedan feb. 2003549 inlägg
#9

jasså missade disabled="disabled"> på den undre, tackar =)

Medlem sedan juni 200032 967 inlägg
#10

Hmm, det fungerar fint för mig...
Har du en länk till sidan?

Edit: ah, dåså. :)

Medlem sedan feb. 2003549 inlägg
#11

Det löste sig, går detta att göra på textarea också? tänkte att när man kommer in kan man skriva i textarea men inte "url" och tvärt om när man kryssar i "link"

Medlem sedan juni 200032 967 inlägg
#12

Om jag har förstått dig rätt:

Direkt Link:<input type="checkbox" name="link" size="45" value="Ja" onchange="if (this.checked) {document.forms[0].url.disabled = false; document.forms[0].foo.disabled = true } else { document.forms[0].url.disabled = true; document.forms[0].foo.disabled = false;}">
Url:<input type="text" name="url" size="45" disabled="disabled">
<br>
<textarea name="foo"></textarea>

Mvh

Medlem sedan feb. 2003549 inlägg
#13

Funkar inte

  <tr>										      
    <td><b>Direkt Link:</b></td><td><input type="checkbox" name="link" size="45" value="Ja"  onchange="if (this.checked) {document.forms[0].url.disabled = false; document.forms[0].foo.disabled = true } else { document.forms[0].url.disabled = true; document.forms[0].WGSGYSIDA.disabled = false;}"></td>
  </tr>
  <tr>										      
    <td><b>Url:</b></td><td><input type="text" name="url" size="45" disabled="disabled"></td>
  </tr>
  <tr>
    <td width="150" valign="top">
	<table cellspacing="0" cellpadding="0" height="100" width="100%">
		<tr>
		 <td valign="top" height="50%">
			<b>Nyhed:</b>
		 </td>
		</tr>
		<tr>
		 <td valign="bottom" height="50%">
			<input type="Submit" name="andra" value="Gem">
		 </td>
		</tr>
	</table>
   </td>
   <td>
    <textarea cols="80" rows="10" name="WGSGYSIDA">
    </textarea>
   </td>
  </tr>

Kan det bero på att jag redan kör detta scriptet?

<script language="Javascript1.2">

<!-- // load htmlarea
_editor_url = "";                     // URL to htmlarea files
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac')        >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Opera')      >= 0) { win_ie_ver = 0; }
if (win_ie_ver >= 5.5) {
  document.write('<scr' + 'ipt src="' +_editor_url+ 'editor.js"');
  document.write(' language="Javascript1.2"></scr' + 'ipt>');  
} else { document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); }
// --></script>

Edit: Såg att jag missat att byta ut en "foo" men det gjorde ingen skillnad när jag bytte denna, WGSGYSIDA funkar fortfarande när jag kryssar i "link"

Medlem sedan juni 200032 967 inlägg
#14

Kan det bero på att jag redan kör detta scriptet?

Tja... Fungerar det om du inte kör det scriptet?

Har du en länk till sidan?

Medlem sedan feb. 2003549 inlägg
#15

Nä sidan ligger på en intern server.. =/ håller nämligen på med ett intranet.

Vet inte om jag vågar börja pilla med det WGSGY scriptet igen, hade nämligen kolosala problem med det när jag skulle lägga in det. Egentligen spelar det ingen roll att de fortfarande kan använda textarea fältet längre, bara det att det de skriver där inte används när man väljer "direkt link". Det får vara så här istället, spelar ingen roll, huvudsaken är att url inte funkar när det inte är i kryssat.

Tack för hjälpen @nders :birp

Medlem sedan maj 200010 687 inlägg
#16

Tycker att det är lite lustig kod här så jag tänkte bara tipsa om ett smartare sätt att skriva.

<form>
<input type="text" name="foo" onkeyup="this.form.bar.disabled = (this.value != '');">
<input type="text" name="bar">
</form>

Helt onödigt med en if-sats där.

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)