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();
}
23 svar · 498 visningar · startad av Jesper T
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();
}
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.
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})$/)
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}/
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>
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 ?
Du måste submitta formuläret:
[red]<a href="#" onclick="document.form1.submit();"><img src="bild.gif"></a>[/red]
Nej, då sticker det iväg med en gång.
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.
Hjälp!!
Hmm.. Posta hela den kod som du använder nu. :)
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".
Oj, jag glömde den också, den ligger inom formtaggarna.
<Input type="hidden" name="edit">
Var kommer iView.document.body.innerHTML ifrån?
Lite svårt att testköra koden om det saknas viktiga delar. ;)
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.
return false;
Var?
Jag har testat att satt in det på 100 ställen men det verkar inte göra någon skillnad.