webForumDet fria alternativet

Går det att sätta en radio button som read only?

JavaScript

15 svar · 495 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Hej alla.

Jag försöker använda en radiobutton för att markera ett fokuserat fält. Går det att göra denna read only. Jag vill inte att radioknappen ska användas. Den ska enbart visas....

.... hmmm... Den har visserligen ett value="xxx" så den kan inte vara disablad.

Är det någon som förstår vad jag vill göra?

Medlem sedan nov. 200013 890 inlägg
#2

Löser detta problemet?

<input type="radio" name="test" disabled="disabled" checked="checked">
Medlem sedan juni 200032 967 inlägg
#3

... eller möjligtvis:

<input type="radio" name="test" readonly="readonly" checked="checked">

Eller är readonly-attributet något IE-specifikt (jag tycker jag har något litet minne om att kanske kan ha varit så...)

Medlem sedan dec. 20025 483 inlägg
#4

@nders skrev:

Eller är readonly-attributet något IE-specifikt (jag tycker jag har något litet minne om att kanske kan ha varit så...)

Nej, det är ej IE-specifikt. Se: http://www.w3.org/TR/REC-html40/index/attributes.html

:)

Medlem sedan juni 200032 967 inlägg
#5

Peter S skrev:

Nej, det är ej IE-specifikt.

Ok. Undrar vad jag tänkte på då. :)

Tack för klargörandet. :)

Medlem sedan maj 20012 080 inlägg
#6

Hmm... jag har också tittat på read only läget men jag får det inte att fungera.

Om jag skriver:

<INPUT type="radio" NAME="search_in_1" value="first_name" readonly="readonly">

Så kan man fortfarande markera radio knappen med musen.

Använder jag disabled varianten så fungerar det grafiskt men det går då inte att post värdet i formuläret.

Hmmm...

Det skulle vara fint om jag slapp byta ut radio knapparna mot bilder.

Skärmdump på hur det ser ut här: http://mattiasnordin.net/temp_download/search_gui.gif

Medlem sedan dec. 20025 483 inlägg
#7

Hm, från HTML 4-DTDn kan läsas att readonlyattributet endast gäller för typerna "text" och "passwd". Se: http://www.w3.org/TR/REC-html40/sgml/dtd.html

Är det inte bara att, som både Anders och Tor visade, sätta elementet till checked?

:)

Medlem sedan juni 200032 967 inlägg
#8

Det händer att jag istället för input-element använder mig av gif-bilder med lämpligt utseende istället, kombinerat med ett litet javascript.

mvh

Medlem sedan maj 20012 080 inlägg
#9

Är det inte bara att, som både Anders och Tor visade, sätta elementet till checked?

Jag använder ett javascript som tömmer alla textrutor och markerar rätt radiobutton. Det som är målet är att göra så att man inte kan ändra manuellt med muspekaren.

Detta är inte ett jätteproblem. Jag kan leva med det eller om jag är petig så bygger jag nog lösningen som @nders föreslår... :)

Medlem sedan dec. 20025 483 inlägg
#10

Om namnet på <input>-elementet detta gäller har ett unikt namn, bör det väl kunna lösas med att sätta det till checked? Då kan du ju ej kryssa ur den.

Utöver Anders lösning finns dessutom möjligheten att sätta elementet till disabled samt lägga till ett <input type="hidden"> med samma namn som det förstnämnda.

:)

Medlem sedan maj 20012 080 inlägg
#11

Om du tittar på min skärmdump så ser du hur jag menar. Se ovan.

Det ska gå att kryssa ur den. Men inte med musen. ;)

Medlem sedan dec. 20025 483 inlägg
#12

Är det en liknande funktion som nedan du använder dig av (jag försöker förstå hur systemet fungerar)?

<form>
    <input type="radio" name="r1"><input type="text" onfocus="this.form.elements['r1'].checked=true" onblur="if (this.value == '') this.form.elements['r1'].checked=false">
    .
    .
    .
    <input type="submit">
</form>

:)

Medlem sedan maj 20012 080 inlägg
#13

Har försökt att klippa ut en del av koden nedan:

<FORM name=frmMain action="/staffdatabase2/redirect_to_page.asp?show_as=vCard" method=post>
<INPUT type="radio" NAME="search_in_1" value="first_name" readonly="readonly">Firstname<BR>
<input type="text" name="search_for_1_a" <%=varStyle%> OnClick="funClearAndSet1(0);" OnKeyUp="document.frmMain.search_for_1.value=document.frmMain.search_for_1_a.value"> 
<INPUT type="radio" NAME="search_in_1" value="last_name">Lastname<BR>
<input type="text" name="search_for_1_b" <%=varStyle%> OnClick="funClearAndSet1(1);" OnKeyUp="document.frmMain.search_for_1.value=document.frmMain.search_for_1_b.value"><br>
<INPUT type="radio" NAME="search_in_1" value="department_id">Department<BR>

<select name="search_for_1_c" <%=varStyle%> OnFocus="funClearAndSet1(2);" OnChange="document.frmMain.search_for_1.value=document.frmMain.search_for_1_c.value">
<option value""></option>
<% while not rsDepartment.eof %>
<option value="<%=rsDepartment("id")%>"><%=rsDepartment("department_name")%></option>
<% rsDepartment.movenext %>
<% wend %> 
<% rsDepartment.movefirst %>
</select>

</form>

<!--- Rensar alla fält och sätter radiobutton till markerat input fält --->
<SCRIPT LANGUAGE="JavaScript">
function funClearAndSet1(num){
frmMain.search_for_1_a.value = "";
frmMain.search_for_1_b.value = "";
frmMain.search_for_1_c.value = "";
frmMain.search_for_1_d.value = "";
frmMain.search_for_1_e.value = "";
frmMain.search_for_1_f.value = "";
frmMain.search_for_1_g.value = "";
frmMain.search_for_1_h.value = "";
frmMain.search_for_1_i.value = "";
frmMain.search_in_1[num].checked = true;
}
function funClearAndSet2(num){
frmMain.search_for_2_a.value = "";
frmMain.search_for_2_b.value = "";
frmMain.search_for_2_c.value = "";
frmMain.search_for_2_d.value = "";
frmMain.search_for_2_e.value = "";
frmMain.search_for_2_f.value = "";
frmMain.search_for_2_g.value = "";
frmMain.search_in_2[num].checked = true;
}
function funClearAndSet3(num){
frmMain.search_for_3_a.value = "";
frmMain.search_for_3_b.value = "";
frmMain.search_for_3_c.value = "";
frmMain.search_for_3_d.value = "";
frmMain.search_for_3_e.value = "";
frmMain.search_for_3_f.value = "";
frmMain.search_for_3_g.value = "";
frmMain.search_in_3[num].checked = true;
}
</script>
Medlem sedan dec. 20025 483 inlägg
#14

Om du lägger till onclick="this.checked=false" på radioknapparna då?

:)

Medlem sedan maj 20012 080 inlägg
#15

Nja... Det fungerar ju faktiskt om man vill hindra någon att göra ett manuellt val. Men har man XP så har du fortfarande mouse over effekten. Det ser ut som att det ska gå att klicka på den.
Jag hade velat att även mouse over funktionen försvann...

Tack för hjälpen Peter S :)

Medlem sedan dec. 20025 483 inlägg
#16

Eftersom jag inte har tillgång till XP, kan jag ej testa mig fram till en lösning.

Du kan ju pröva onmouseover/-focus = "this.blur()".

Förhoppningsvis kan någon annan hjälpa dig.

:)

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)