webForumDet fria alternativet

Confirm vid checkad box?

23 svar · 498 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#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();
}
PalleMedlem 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.

Jesper TMedlem 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})$/)

dectgapMedlem 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}/
Jesper TMedlem 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>
Jesper TMedlem 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 ?

PalleMedlem 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]
Jesper TMedlem sedan nov. 20017 144 inlägg
#8

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

PalleMedlem sedan apr. 20003 174 inlägg
#9

Aw.. crap!

Testa denna då:

[red]<input type="image" name="submit" src="bild.gif">[/red]
Jesper TMedlem 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.

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

Hjälp!!

PalleMedlem sedan apr. 20003 174 inlägg
#12

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

Jesper TMedlem 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".

PalleMedlem sedan apr. 20003 174 inlägg
#14

document.form1.edit.value

Var har du textfältet edit någonstans?

Jesper TMedlem sedan nov. 20017 144 inlägg
#15

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

PalleMedlem 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. ;)

Jesper TMedlem 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.

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

Var?

Jesper TMedlem 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.

268 ms totalt · 3 externa anrop · v20260731065814-full.30151723
140 ms — hämta forumlista (db)
126 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)