webForumDet fria alternativet

onSubmit

2 svar · 488 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 100 inlägg
#1

har snöat in mig i taggarna, de e nått fel som är trasigt!

<script type="text/javascript">
function isFile(obj)
{
	if(!obj.form.File.match(/(\.gif|\.jpg)$/i))
	{
		alert("Fel filtyp"); 
		return false;
	}
	return true;
}
</script>

<input type="file" name="File">
<input name="btnAttach" type="button" id="btnAttach" value="Lägg till fil" onClick="return (this.form.onSubmit( isFile(this) && this.form.action='http://sida.asp?Action=attach' && this.form.submit() ) );">

syntax error!

nitro2k01Medlem sedan aug. 20037 630 inlägg
#2
<script type="text/javascript">
function isFile(filename)
{
	if (!filename.length){
		alert("Du har inte valt någon fil!");
		return false;
	}

	if(!filename.match(/(\.gif|\.jpg|\.jpeg|\.jpe|\.png)$/i)){
		alert("Fel filtyp");
		return false;
	}
	return true;
}

function skickaFil(th)
{
	if (isFile(th.form.elements["File"].value)) {
		th.form.action="http://sida.asp?Action=attach";
		th.form.submit();
	}
}
</script>

<form>
<input type="file" name="File" />
<input name="btnAttach" type="button" id="btnAttach" value="Lägg till fil" onclick="skickaFil(this);" />
</form>

Hmm, en del som jag var tvungen att ändra på. Ett par anmärkningar:

  • onsubmit stavas med små bokstäver!
  • Det är ganska meningslöst att använda return till en button-knapp, eftersom den inte gör något. return används snarare med fördel som så <form onsubmit="return ...">
  • obj.form.File.match är felaktigt, eftersom obj.form.File är ett objekt och inte ett strängvärde. Det du borde ha använt istället är möjligen obj.form.File.value.match eller hellre obj.form["File"].value.match. (Även om jag valde en annan lösning)
doggelitoMedlem sedan juni 20003 100 inlägg
#3

hehe, som sagt: ganska insnöad! :)
tack för lösningen och tack för anmärkningarna. :bire

Genererad på 385 ms · cache AV · v20260730165559-full.f96bc7eb