---
title: "Hur skapar man en dynamisk formulärkontrollfunktion?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/91105-hur-skapar-man-en-dynamisk-formulärkontrollfunktion"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "sabbacus"
published: "2003-11-24T02:33:07.000Z"
updated: "2003-11-24T20:35:36.000Z"
replies: 3
views: 655
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/91105-hur-skapar-man-en-dynamisk-formulärkontrollfunktion"
---

# Hur skapar man en dynamisk formulärkontrollfunktion?

## #1 — sabbacus, 2003-11-24T02:33Z

Tja.
Jag har följande HTML-kod:
\<form action="start.php?module={$module_id}&amp;add=entry" method="post" onsubmit="checkSubmit(this.form)"\>
				\<div\>
					rubrik
					\<br /\>
					\<input type="text" name="headline" value="" class="spp_mod_guestbook_form" onclick="init( this )" /\>
					\<br /\>
				
					meddelande
					\<br /\>
					\<textarea name="message" class="spp_mod_guestbook_form" rows="" cols="" onclick="init( this )" \>\</textarea\>
					\<br /\>
				
					namn
					\<br /\>
					\<input type="text" name="author" value="" class="spp_mod_guestbook_form" onclick="init( this )" /\>
					\<br /\>
				
					email
					\<br /\>
					\<input type="text" name="email" value="" class="spp_mod_guestbook_form" onclick="init( this )" /\>
					\<br /\>
				
					webbadress
					\<br /\>
					\<input type="text" name="url" value="" class="spp_mod_guestbook_form" onclick="init( this )" /\>
					\<br /\>
				
					\<br /\>
					\<input type="submit" name="submit" value="Posta inlägg" class="spp_mod_guestbook_form" /\>
				\</div\>
			\</form\>

och följande javascriptskod:
function checkSubmit( form ) 
{
	alert("checkSubmit");
	
	var headline = document.forms\[0\].headline.value;
	var message = document.forms\[0\].message.value;
	var author = document.forms\[0\].author.value;
	var email = document.forms\[0\].email.value;
	var url = document.forms\[0\].url.value;

	if ( headline == "rubrik..." )
	{
		document.forms\[0\].headline.value = "";
	}
	
	if ( message == "meddelande..." )
	{
		document.forms\[0\].message.value = "";
	}
	
	if ( author == "ditt namn..." )
	{
		document.forms\[0\].author.value = "";
	}
	
	if ( email == "e-post..." )
	{
		document.forms\[0\].email.value = "";
	}
	
	if ( url == "webbadress..." \|\| url == "http://" )
	{
		document.forms\[0\].url.value = "";
	}
	
}

function initForm( form ) 
{
	alert("initform");
	document.forms\[0\].headline.value = "rubrik...";
	
	document.forms\[0\].message.value = "meddelande...";
	
	document.forms\[0\].author.value = "ditt namn...";
	
	document.forms\[0\].email.value = "e-post...";
	
	document.forms\[0\].url.value = "webbadress...";
	
}

function init( input_name ) 
{
	alert("init " + input_name.name + "..."+ input_name.value + "...");
	var \_name = input_name.name;
	
	if ( input_name.name == "url" )
	{
		document.forms\[0\].url.value = "http://";
	}
	/\*else 
	{
		document.forms\[0\].input_name.name.value = "";
	}\*/
	
} 

Mitt problem ligger i funktionen init(). Det jag vill ha gjort är
"när någon klickar i fältet 'url' ska texten ändras till 'http://' medan alla andra fält ska nollställas".
Att få 'url' till att få 'http://' är inga problem, att få de andra fälten att nollställas är däremot mitt problem.
Ok, jag kan göra fem olika funktioner, men hur kul är det? DEt hade iofs gått snabbare äna att sitta och försöka lösa det här problemet men då lär man sig inget.

Mitt problem gestaltar sig i att jag inte kan få namnet på \<input\>/\<textarea\>-fältet att dynamiskt infinna sig i javaskriptfunktionen. När jag använder fältets tiktiga namn går det bra men jag vill alltså slänga in ett variabelt namn där det står "input_name.name" och "url" i javaskriptsfunktionen init(). Hur gör jag detta?

Tackar på förhand.
/M

Permalänk: https://www.webforum.nu/p/91105

## #2 — jupiters, 2003-11-24T19:22Z

Det går nog att lösa!
Jag fattar bara inte riktigt vad du vill?

"Det jag vill ha gjort är
när någon klickar i fältet 'url' ska texten ändras till 'http://' medan alla andra fält ska nollställas".

Att nollställa alla andra fält är väl inget problem!

är ju bara att skriva:
document.forms\[0\].email.value="";
document.forms\[0\].author.value="";
osv...

...men något säger mig att det inte var detta du menade...

en närmare förklaring skulle vara på sin plats!!

Permalänk: https://www.webforum.nu/p/1213355

## #3 — sabbacus, 2003-11-24T19:40Z

> **jupiters skrev:**
>
> Det går nog att lösa!
> Jag fattar bara inte riktigt vad du vill?
> 
> "Det jag vill ha gjort är
> när någon klickar i fältet 'url' ska texten ändras till 'http://' medan alla andra fält ska nollställas".
> 
> Att nollställa alla andra fält är väl inget problem!
> 
> är ju bara att skriva:
> document.forms\[0\].email.value="";
> document.forms\[0\].author.value="";
> osv...
> 
> ...men något säger mig att det inte var detta du menade...
> 
> en närmare förklaring skulle vara på sin plats!!

Alltså, jag vill inte att alla fält ska nollställas när man klickar på ett fält. Jag vill att endast det "klickade" fältet ska nollställas, med undantag för URL-fältet som inte ska nollställas utan få texten "http://" istället ( för att folk ska fatta att dom ska ska ha med det, även om php:n inkluderar det om det saknas).

Permalänk: https://www.webforum.nu/p/1213363

## #4 — jupiters, 2003-11-24T20:35Z

Har kommit på vad som var fel!

function init( input_name ) 
{
alert("init " + input_name.name + "..."+ input_name.value + "...");
var \_name = input_name.name;

if ( input_name.name == "url" )
{
document.forms\[0\].url.value = "http://";
}
/\*else 
{
document.forms\[0\].input_name.name.value = "";
}\*/

} 

Sista raden ska vara endast:
input_name.value ="";

som du själv skrivit i alert-raden ovan ;-)
Det går ju inte att skriva input_name.name.value

Permalänk: https://www.webforum.nu/p/1213412

---

Tråden på webben: https://www.webforum.nu/amne/javascript/91105-hur-skapar-man-en-dynamisk-formulärkontrollfunktion
