webForumDet fria alternativet
Logga in / Bli medlem

Kolla om formelement finns

JavaScript

4 svar · 236 visningar · startad av Matte

Medlem sedan aug. 20002 975 inlägg
Trådstart#1

Jag håller på med ett formvalideringsskript. Problemet är att formuläret byggs upp dynamiskt i PHP, så alla inputfält finns inte alltid där.
Jag söker en motsvarighet till isset() i PHP, så att man kan skriva något liknande det här:

if (exists(document.formnamn.fältnamn)) {
  // gör något
}

Finns det en funktion för något motsvarande, eller hur löser man en sådan sak?

Medlem sedan sep. 20021 655 inlägg
#2

Jag vet att det inte löser ditt problem på det sättet du kanske väntat dig, men kan du inte ändra JavaScriptet dynamiskt på samma sätt som du ändrar vad som skrivs ut på sidan?

Medlem sedan aug. 20002 975 inlägg
#3

Jodå, visst går det att göra utskrift av javascripten dynamiskt, och det är också gjort som en tillfällig lösning fram till dess eller om jag får en lösning i javascript.
Det jag har funkar hyfsat, men är inte särskilt snyggt.

Medlem sedan juni 20004 308 inlägg
#4

Här är ett litet exempel på hur man kan göra;

<form name="myForm">
<input type="text" name="foo">
</form>
<a href="#" onClick="if(fieldExists(document.myForm,'faa')){alert('Fältet finns')}else{alert('Fältet finns inte')}">Click me!</a>

<script language="JavaScript" type="text/javascript">
function fieldExists(formobj,fieldname){
	for(var i=0;i<formobj.length;i++){
		if(formobj[i].name==fieldname){ return true; }
	}
	return false;
}
</script>
Medlem sedan aug. 20002 975 inlägg
#5

Man får tacka allra ödmjukast. :)

Då har jag lagt två saker till min ringa kunskap om javaskript.
1. Det finns ingen färdig funktion för att kolla om ett objekt finns, utan man får bygga det själv. Tack för hjälpen.
2. Formelementen ligger i en array i formobjektet.

266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)