webForumDet fria alternativet

Confirm vid checkad box?

JavaScript

23 svar · 502 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Hur får jag till att forumuläret skickas om man svarar "ok"?
I nuläget så händer inget.

function submitHTML() {
if(document.form1.red.checked)
return confirm('Vill du verkligen skriva över den befintliga filen?');
else
document.form1.submit();
}
Medlem sedan apr. 20003 174 inlägg
#2

Detta fungerar bra för mig:

[red]<script type="text/javascript">
<!--

function submitHTML() {
	if (document.form1.red.checked)
		return confirm('Vill du verkligen skriva över den befintliga filen?');
	else
		document.form1.submit();
} 

//-->
</script>

...

<form name="form1" onsubmit="return submitHTML();">
	<input type="checkbox" name="red">Skriv över
	<br><br>
	<input type="submit">
</form>[/red]

Klickar man inte i checkboxen så skickas formuläret direkt, klickar man i checkboxen så kommer bekräftelserutan upp.
Väljer man OK i bekräftelserutan så skickas forumläret, väljer man AVBRYT händer nada.

Medlem sedan nov. 20017 144 inlägg
#3

Det var ju exakt det jag behövde! Tack!
Jag skulle även behöva komplimentera med att kolla att ett fält innehåller ett filnamn. Alltså, ett valfritt antal bokstäver, en punkt, samt två - fyra tecken efter punkten. Hur skulle ett sådant regexppattern se ut?
Är detta en början?
([a-zA-Z0-9]{1}([a-zA-Z0-9|-|_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)

Medlem sedan sep. 20021 655 inlägg
#4

Jag har inga problem med att skapa en fil vars namn börjar på ett understreck eller bindestreck, eller har med en siffra i filändelsen, så jag förstår inte varför du gör en sådan koll

Jag skulle skriva ett sånt här mönster:

/\w+\.\w{2,3}/
Medlem sedan nov. 20017 144 inlägg
#5

Tack det blev så här till slut:

<script type="text/javascript">
<!--
function submitHTML() {
String.prototype.isValidfilename = function(){
	return !! this.match(/\w+\.\w{2,3}/)
    }
       if(!document.form1.filename.value.isValidfilename()){
            alert("Filnamnet verkar inte stämma!\nSe till att den innehåller filnamn och en filändelse.");
       document.form1.filename.focus();
       return false;
     }
	if (document.form1.red.checked)
		return confirm('Vill du verkligen skriva över den befintliga filen?');
	else
		document.form1.submit();
} 
//-->
</script>

<form name="form1" onsubmit="return submitHTML();">
	<input type="checkbox" name="red">Skriv över
	<br>
<input type="text" name="filename">
        <br>
	<input type="submit">
</form>
Medlem sedan nov. 20017 144 inlägg
#6

Ooops, jag skulle vilja ha en "bildlänk" med ett onclickevent för att submita formuläret men då funkar det inte riktigt som det skall. Om jag klickar "Ok" på confirmdialogrutan så submitas inte något.
Alltså, ovanstående kod funkar, men inte:

<a href="#" onclick="return submitHTML();"><img src="bild.gif"></a>

Vad göra ?

Medlem sedan apr. 20003 174 inlägg
#7

Du måste submitta formuläret:

[red]<a href="#" onclick="document.form1.submit();"><img src="bild.gif"></a>[/red]
Medlem sedan nov. 20017 144 inlägg
#8

Nej, då sticker det iväg med en gång.

Medlem sedan apr. 20003 174 inlägg
#9

Aw.. crap!

Testa denna då:

[red]<input type="image" name="submit" src="bild.gif">[/red]
Medlem sedan nov. 20017 144 inlägg
#10

Japp det gjorde susen. :)
Men....(som alltid) jag märkte ett nytt problem.
Vad jag inte har skrivit tidigare i koden är att innan formuläret submitas så skickar jag över lite text till ett hidden field:

    document.form1.edit.value=iView.document.body.innerHTML;
		document.form1.submit();

Men kruxet är att väljer man att skriva över genom att klicka för checkboxen så hoppas det över.

Medlem sedan nov. 20017 144 inlägg
#11

Hjälp!!

Medlem sedan apr. 20003 174 inlägg
#12

Hmm.. Posta hela den kod som du använder nu. :)

Medlem sedan nov. 20017 144 inlägg
#13

Kömmer här:

<script type="text/javascript">
<!--
function submitHTML() {
String.prototype.isValidfilename = function()  {return !! this.match(/\w+\.\w{2,3}/)}
       if(!document.form1.filename.value.isValidfilename())
	   {
       alert("Filnamnet verkar inte stämma!\nSe till att den innehåller filnamn och en filändelse.");
       document.form1.filename.focus();
       return false;
       }
	if (document.form1.red.checked)
		return confirm('Vill du verkligen skriva över den befintliga filen?');
		
	else
	    [red]document.form1.edit.value=iView.document.body.innerHTML;[/red]
		document.form1.submit();
} 
//-->
</script>
...
<form name="form1" onsubmit="return submitHTML();">
	<input type="checkbox" name="red">Skriv över
	<br>
<input type="text" name="filename">
        <br>
	<input type="submit">
</form>

När jag kör koden utan att klicka i checkboxen så "överförs" koden på rätt sätt.
Men klickar jag i den och "Ok:ar" confirmen så submitas forumuläret men inget "överförs".

Medlem sedan apr. 20003 174 inlägg
#14

document.form1.edit.value

Var har du textfältet edit någonstans?

Medlem sedan nov. 20017 144 inlägg
#15

Oj, jag glömde den också, den ligger inom formtaggarna.
<Input type="hidden" name="edit">

Medlem sedan apr. 20003 174 inlägg
#16

Var kommer iView.document.body.innerHTML ifrån?
Lite svårt att testköra koden om det saknas viktiga delar. ;)

Medlem sedan nov. 20017 144 inlägg
#17

Ok, sidan är några hundra sidor lång. Men när jag testade det hela så ersatte jag hela den rödfärgade raden även med en alert.
Men jag lägger upp den.

Medlem sedan aug. 2002733 inlägg
#18
 return false;
Medlem sedan nov. 20017 144 inlägg
#19

Var?

Medlem sedan nov. 20017 144 inlägg
#20

Jag har testat att satt in det på 100 ställen men det verkar inte göra någon skillnad.

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