Jag måste bara reda ut några saker.
- Det finns alltså två källor som postar forumläret: en submitknapp och ett <select>-element?
- Du vill att confirm()-delen endast skall köras när formuläret postas via submitknappen?
30 svar · 1 342 visningar · startad av LesPaul · sida 2 av 2
Hej alla glada, jag vil ha en valideringsfunktion som känner av om ett fält har ändrats eller ej. Har fältet inte ändrats när man trycker på submit skall man få en popup ruta med ett meddelande ex "Fältet X har inte ändrats" och 2 val "återgå" och "OK". Trycker man OK fortsätter submit. Har fältet ändrats händer inget och formuläret postas. Någon som vet hur man löser detta? Väldigt tacksam för
Läs frågan i sin helhet →Jag måste bara reda ut några saker.
Det finns alltså två källor som postar forumläret: en submitknapp och ett <select>-element?
- Ja det verkar ju som dokumentet postas med selectfunktionen men det gör det inte för dokumentet sparas inte. Det jag vill med denna funktionen är endast att uppdatera ett annat fält. Jag väljer ex ett värde och baserat på det hämtas rätt värden ur en databas och visas i ett annat fält.
Du vill att confirm()-delen endast skall köras när formuläret postas via submitknappen?
- Det är helt korrekt. Det funkar fint att ha funktioner här för här lägger jag övriga valideringsfunktioner, kolla så ett fält är ifyllt, korrekt angiven e-popst mm. och de reagerar inte förrän jag klickar på submit. jag lägger alltså i det läget koden i headern och anropar på funktionen i form submit.
Ex, denna fungerar utmärkt och går inte in förrän jag postar på submitknappen:
HEADER
function control() {
// Här kollas fältet av
if (document._formnamn.fältnamn.value == "")
{
alert("Du har ej angett blabla")
return false
}
}
onSubmit på form
return control()
Då skall vi alltså integrera vår ursprungliga kod med den övriga valideringskoden. Jag bygger vidare på din control()-funktion:
window.onload = function(){
val = document.forms["_ad_kalender"].elements["pub_day"].value;
}
function control() {
// Här kollas fältet av
if (document._formnamn.fältnamn.value == "")
{
alert("Du har ej angett blabla")
return false
}
if (document.forms["_ad_kalender"].elements["pub_day"].value == val){
return confirm("Fältet 'e' har ej ändrats\nVill du ändå fortsätta?");
}
return true;
}
Fungerar det?
Nej,
när jag använder den här koden uppstår följande fel:
1. onChange fungerar inte alls. Selectboxen funkar men det görs ingen refresh av fälten.
2. Det gå inte att spara/submitta dokumentet. Inget händer vid knapptryckning.
Då vet jag inte vad man skall hitta på. Det är oerhört frustrerande att sitta och famla i mörkret :) Kan du inte kopiera källkoden till ett nytt dokument som du bifogar här? Det skulle underlätta väldigt mycket om man hade den framför sig.
<HTML>
<!-- Lotus-Domino (Release 5.0.9a - January 7, 2002 on Linux for Intel) -->
<HEAD>
<meta name=Robots content=noindex, nofollow>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.onload = function(){
val = document.forms["ad_kalender"].elements["pub_day"].value;
}
function control() {
// Här kollas fältet av
if (document.forms["ad_kalender"].elements["pub_day"].value == val){
return confirm("Fältet 'e' har ej ändrats\nVill du ändå fortsätta?");
}
return true;
}
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
document._domino_target = "_self";
function _doClick(v, o, t, h) {
var form = document._ad_Kalender;
if (form.onsubmit) {
var retVal = form.onsubmit();
if (typeof retVal == "boolean" && retVal == false)
return false;
}
var target = document._domino_target;
if (o.href != null) {
if (o.target != null)
target = o.target;
} else {
if (t != null)
target = t;
}
form.target = target;
form.__Click.value = v;
if (h != null)
form.action += h;
form.submit();
return false;
}
// -->
</SCRIPT>
</HEAD>
<BODY TEXT="000000" BGCOLOR="FFFFFF">
<FORM onSubmit="return control()" METHOD=post ACTION="/ad_Kalender?OpenForm&Seq=1" ENCTYPE="multipart/form-data" NAME="_ad_Kalender">
<INPUT TYPE=hidden NAME="__Click" VALUE="0"><FONT SIZE=1 COLOR="FF0000" FACE="Verdana"><style TYPE="TEXT/CSS"></FONT>
<body topmargin="0" leftmargin="0" MARGINHEIGHT="0" MARGINWIDTH="0"><FONT SIZE=1 COLOR="FF0000" FACE="Verdana"><a name="top"></FONT><BR>
<CENTER><BR>
<TR VALIGN=top><TD WIDTH="1015" COLSPAN=2><FONT SIZE=1 COLOR="FF0000" FACE="Verdana"><hr noshade size="1" color="#EEEEEE"></FONT></TD></TR>
<TR VALIGN=top><TD WIDTH="1015" COLSPAN=2><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD></TR>
<TR VALIGN=top><TD WIDTH="417" BGCOLOR="F7F7F7" VALIGN=middle><FONT SIZE=1 FACE="Verdana">Typ</FONT></TD><TD WIDTH="597" BGCOLOR="F7F7F7"><FONT SIZE=1 FACE="Verdana">
<INPUT TYPE=radio NAME="kal_typ" VALUE="1" CHECKED onClick="_doClick('$Refresh', this, '_self', '#Top')">Spelning
<INPUT TYPE=radio NAME="kal_typ" VALUE="2" onClick="_doClick('$Refresh', this, '_self', '#Top')">Release</FONT></TD></TR>
<TR VALIGN=top><TD WIDTH="417" BGCOLOR="FFFFFF" VALIGN=middle><FONT SIZE=1 FACE="Verdana">Händelsdatum</FONT></TD><TD WIDTH="597" BGCOLOR="FFFFFF" VALIGN=middle>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top><TD WIDTH="209" VALIGN=middle><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="pub_year">
<OPTION VALUE="no">
<OPTION>2003
<OPTION>2004
<OPTION SELECTED>2005
<OPTION>2006</SELECT>
</FONT><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="pub_month">
<OPTION VALUE="1">01
<OPTION VALUE="6">06
<OPTION VALUE="7">07
<OPTION VALUE="8">08
<OPTION VALUE="9" SELECTED>09
<OPTION>10
<OPTION>11
<OPTION>12</SELECT>
</FONT><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="pub_day">
<OPTION VALUE="1">01
<OPTION VALUE="2">02
<OPTION VALUE="13">13
<OPTION VALUE="14">14
<OPTION VALUE="15">15
<OPTION VALUE="16" SELECTED>16
<OPTION VALUE="17">17
<OPTION VALUE="30">30
<OPTION VALUE="31">31</SELECT>
</FONT></TD></TR>
</TABLE>
</TD></TR>
<TR VALIGN=top><TD WIDTH="1015" BGCOLOR="FFFFFF" COLSPAN=2>
<FONT SIZE=1 COLOR="FF0000" FACE="Verdana">
<hr noshade size="1" color="#EEEEEE"></FONT></TD></TR>
<TR VALIGN=top><TD WIDTH="417" BGCOLOR="F7F7F7" VALIGN=middle><FONT SIZE=1 FACE="Verdana">Artist</FONT></TD><TD WIDTH="597" BGCOLOR="F7F7F7" VALIGN=middle>
<TABLE width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top><TD width=90% WIDTH="209"><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="kal_artist1" style=width:265px;>
<OPTION VALUE="no" SELECTED>
<OPTION VALUE="Attic, The">Attic, The
<OPTION VALUE="Babylon Bombs">Babylon Bombs</SELECT>
</FONT></TD><TD width=10% WIDTH="209" ROWSPAN=2><FONT SIZE=1 FACE="Verdana">
<INPUT TYPE=checkbox NAME="kal_NoArtist" VALUE="1" onClick="_doClick('$Refresh', this, '_self', '#Top')">N/A</FONT></TD></TR>
</TABLE>
</TD></TR>
<TR VALIGN=top><TD WIDTH="1015" BGCOLOR="FFFFFF" COLSPAN=2><FONT SIZE=1 COLOR="FF0000" FACE="Verdana"><hr noshade size="1" color="#EEEEEE"></FONT></TD></TR>
<TR VALIGN=top><TD WIDTH="417" BGCOLOR="F7F7F7" VALIGN=middle><FONT SIZE=1 FACE="Verdana">Stad</FONT></TD><TD WIDTH="597" BGCOLOR="F7F7F7" VALIGN=middle>
<TABLE width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top><TD width=90% WIDTH="209"><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="kal_stad1" style=width:265px; onChange="_doClick('$Refresh', this, '_self', '#Top')">
<OPTION VALUE="no" SELECTED>
<OPTION VALUE="Arvika">Arvika
<OPTION VALUE="Bengtsfors">Bengtsfors
<OPTION VALUE="Huskvarna">Huskvarna
<OPTION VALUE="_392276srcclk6ur3d_">Hässleholm
<OPTION VALUE="_h9aa6sqske1kmspo_">Jönköping
<OPTION VALUE="Kalmar">Kalmar **
<OPTION VALUE="Karlskrona">Karlskrona **</SELECT>
</FONT></TD><TD width=10% WIDTH="209" ROWSPAN=2><FONT SIZE=1 FACE="Verdana">
<INPUT TYPE=checkbox NAME="kal_NoStad" VALUE="1" onClick="_doClick('$Refresh', this, '_self', '#Top')">N/A</FONT></TD></TR>
</TABLE>
</TD></TR>
<TR VALIGN=top><TD WIDTH="417" BGCOLOR="FFFFFF" VALIGN=middle><FONT SIZE=1 FACE="Verdana">Arena</FONT></TD><TD WIDTH="597" BGCOLOR="FFFFFF" VALIGN=middle>
<TABLE width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top><TD width=90% WIDTH="292"><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="kal_arena1">
<OPTION SELECTED></SELECT>
</FONT></TD><TD width=10% WIDTH="292" ROWSPAN=2><FONT SIZE=1 FACE="Verdana">
<INPUT TYPE=checkbox NAME="kal_NoArena" VALUE="1" onClick="_doClick('$Refresh', this, '_self', '#Top')">N/A</FONT></TD></TR>
</TABLE>
</TD></TR>
<TR VALIGN=top><TD WIDTH="417" BGCOLOR="F7F7F7" VALIGN=middle><FONT SIZE=1 FACE="Verdana">Arrangör</FONT></TD><TD WIDTH="597" BGCOLOR="F7F7F7" VALIGN=middle>
<TABLE width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top><TD width=90% WIDTH="292"><FONT SIZE=1 FACE="Verdana">
<SELECT NAME="kal_arr1">
<OPTION VALUE="no" SELECTED>
<OPTION VALUE="EMA-Telstar">EMA-Telstar
<OPTION VALUE="Luger">Luger</SELECT>
</FONT></TD><TD width=10% WIDTH="292" ROWSPAN=2><FONT SIZE=1 FACE="Verdana">
<INPUT TYPE=checkbox NAME="kal_NoArr" VALUE="1" onClick="_doClick('$Refresh', this, '_self', '#Top')">N/A</FONT></TD></TR>
</TABLE>
</TD></TR>
<TR VALIGN=top><TD WIDTH="1015" BGCOLOR="FFFFFF" COLSPAN=2><FONT SIZE=1 COLOR="FF0000" FACE="Verdana"><hr noshade size="1" color="#EEEEEE"></FONT></TD></TR>
<TR VALIGN=top><TD WIDTH="1015" BGCOLOR="FFFFFF" COLSPAN=2><FONT SIZE=1 COLOR="FF0000" FACE="Verdana"><br><br></FONT></TD></TR>
<TR VALIGN=top><TD WIDTH="1015" BGCOLOR="808080" COLSPAN=2>
<TABLE width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR VALIGN=top><TD width=40% WIDTH="167"><DIV ALIGN=right>
<INPUT TYPE=button VALUE="<- Tillbaka" onClick="return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.7370', this, null)"></DIV></TD><TD WIDTH="180"><DIV ALIGN=right>
<INPUT TYPE=button VALUE="Spara/Skapa LIKA" onClick="return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.749A', this, null)"></DIV></TD><TD width=30% WIDTH="167"><DIV ALIGN=right>
<INPUT TYPE=button VALUE="Spara/Skapa NY" onClick="return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.7618', this, null)"></DIV></TD><TD></TD><TD></TD><TD width=10% WIDTH="167"><DIV ALIGN=right>
<INPUT TYPE=button VALUE="Spara" onClick="return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.7AB2', this, null)"></DIV></TD></TR>
</TABLE>
</TD></TR>
<TR VALIGN=top><TD WIDTH="1015" COLSPAN=2><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD></TR>
<TR VALIGN=top><TD WIDTH="417">
<INPUT TYPE=button VALUE="Spara" onClick="return _doClick('1737f45085714fdcc1257074004a9ce2/$Body/0.8804', this, null)"></TD><TD WIDTH="597"><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD></TR>
<TR VALIGN=top><TD WIDTH="417"><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD><TD WIDTH="597"><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD></TR>
<TR VALIGN=top><TD></TD><TD WIDTH="597"><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD></TR>
<TR VALIGN=top><TD width=170 WIDTH="417"><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD><TD width=330 WIDTH="597"><IMG SRC="/icons/ecblank.gif" BORDER=0 HEIGHT=1 WIDTH=1 ALT=""></TD></TR>
</TABLE>
</TD></TR>
</TABLE>
</CENTER>
<INPUT NAME="savePar" VALUE="" Type=HIDDEN>
<INPUT NAME="cat" TYPE=hidden VALUE="ka">
<INPUT NAME="StateArtist" TYPE=hidden VALUE="">
<INPUT NAME="StateArr" TYPE=hidden VALUE="">
<INPUT NAME="StateYear" TYPE=hidden VALUE="">
<INPUT NAME="StateMonth" TYPE=hidden VALUE="">
<INPUT NAME="StateDay" TYPE=hidden VALUE="">
<INPUT NAME="artist_namn2" TYPE=hidden VALUE="">
<INPUT NAME="kal_arr3" TYPE=hidden VALUE="">
<INPUT NAME="status" TYPE=hidden VALUE="LÄGG TILL">
<INPUT NAME="pubdate" TYPE=hidden VALUE="9/16/2005">
<INPUT NAME="textArtist" TYPE=hidden VALUE="Artist">
<INPUT NAME="kal_artist2" TYPE=hidden VALUE="">
<INPUT NAME="artist_namn" TYPE=hidden VALUE="">
<INPUT NAME="kal_SkivTyp" TYPE=hidden VALUE="CD">
<INPUT NAME="kal_titel" TYPE=hidden VALUE="">
<INPUT NAME="kal_NoTitle" TYPE=hidden VALUE="">
<INPUT NAME="kal_bolag" TYPE=hidden VALUE="">
<INPUT NAME="textStad" TYPE=hidden VALUE="Stad">
<INPUT NAME="kal_stad2" TYPE=hidden VALUE="">
<INPUT NAME="stad_namn" TYPE=hidden VALUE="">
<INPUT NAME="textArena" TYPE=hidden VALUE="Arena">
<INPUT NAME="kal_arena2" TYPE=hidden VALUE="">
<INPUT NAME="arena_namn" TYPE=hidden VALUE="">
<INPUT NAME="textArrangor" TYPE=hidden VALUE="Arrangör">
<INPUT NAME="kal_arr2" TYPE=hidden VALUE="">
<INPUT NAME="kal_arr" TYPE=hidden VALUE="">
<INPUT NAME="kal_buy" TYPE=hidden VALUE="">
</BODY>
</HTML>
Det där gick ju inte så bra. Här får du en fil istället.
Det verkade vara ett namnproblem. Ditt formulär hette "_ad_Kalender", men i skriptet refererades det till som "_ad_kalender".
Jag har bifogat en ny version.
Ok, ja det avhjälpte ju problemet att man inte kan posta men problemet kvarstår fortfarande om man ex väljer en stad så hoppar rutan upp igen och säger att fältet inte är ändrat. Lurigt det här.
Vad är det för skillnad på de två "Spara"-knapparna?
Kan du bestämma vad dessa skall göra i onclick-attributet?