16. marts 2004 - 12:22Der er
15 kommentarer og 1 løsning
Validering af hvilken submit der anvendes
Jeg har en ASP formular hvor jeg har flere submitknapper.
HVis jeg anvender "onsubmit" fra form-tagget vil jeg gerne kunne lave en if sætning i mit javascript som kan returnere om der er knap 'xyx' der specifikt er trykket på. Det jeg oplever er at alle knappers værdi er sat uanset om de er blevet trykket på, og derfor returnerer if sætningen altid true uanset hvad.
det kan du ikke med mindre du angiver at en knap har blevet trykket på. men hvad skal du med det ? skal der ske noget på klienten når du klikker på de forskellige submits ?
Jeg ved meget lidt om java... Jeg kan snildt lave det i asp, modtager siden, men jeg synes det ser bedre ud med det lille prompt vindue på klienten. Jeg har 2 knapper. Den ene er en save knap som brugeren anveder hver gang der sker tilføjelser. Sidste gang han ændrer noget trykker han på en "afslut" knap, som så gemmer men derudover ved modtager siden (save.asp) at der skal skiftes status. kan du følge mig "nute". Når han trykker afslut er der en selectbox der ikke må stå på en bestemt værdi. hvis den gør det skal brugeren have en prompt, så han kan ændre data(selectboxen) og "afslutte" igen. Da jeg ikke vil have denne validering af selectboxen ved "save". behøver jeg at vide hvilken knap der sender formen afsted til save.asp.
Nute din kode ser med mine nove evner i java god ud. roenving. Din kode ser dejlig simpel ud, uden at jeg helt er med på hvordan den udfører jobbet ( det kan jeg godt lide at have styr på) f.eks: (this.selectbox.selectedIndex!=1)"> og this.form.action+='?submit=save' har jeg umiddelbart svært ved at gennemskue.
Jeg vil asap vende tilbage når jeg har prøvet dem af...
roenving: Jeg er novice, men efter hvad jeg kan se og teste dur din ikke, da begge knapper opfører sig ens. Som jeg ser og tester det, er onclick på begge knapper ikke til megen gavn. Det er alene indexet i onsubmit der styrer slaget, og derved VIL alle kanpper opføre sig ens. Hvad onclick skulle gøre i denne sammenhæng, ville være rar at vide:) Nute: Det virker perfekt, når altså lige 'return false' og 'return true' indsættes korrekt i scriptet. du mangler lige et "svar" til pointgivning
wildthing >> jeg har også prøvet at skrive det så overskueligt som muligt - desværre, så har jeg ramt godt ved siden af dit ønske. Jeg har jo ingen dropdown med, noget roenving har.
når formularet bliver submittet, så tjekkes der for om valg nummer 2 er valgt eller ikke. Dette svar returneres i form af true eller false. selectedIndex refererer til den option der er valgt i en selectbox. Når man tæller options, så starter man på 0, og derfor så refererer 'selectedIndex!=1' til option nummer 2. != betyder "ikke lig med", så dét der faktisk bliver testet på, er om den valgte option *ikke* er valg nummer 2 (som er "ulovlig" i hans eksempel)
this.form.action+='?submit=save' og this.form.action+='?submit=afslut' *vil* opføre sig på samme måde ... formen bliver submittet, men der bliver sat et andet parameter på querystringen ved valg af save end afslut. Hvis du ikke ønsker at dit formular bliver submittet ved Afslut, så kan du jo bare droppe 'onclick' på din knap
Korrekt nute, jeg havde så meget focus på knapperne. Tak for forklaringerne, men (måske forstår jeg det ikke) er det du siger at roenvings løsning er det korrekte under hensyntagen til at selectboxen skal være med. I så fald skal jeg have fundet ud af hvad jeg skal gøre for at sikre at "save" bare submitter uden videre, modsat "afslut" der ikke må submittes hvis valg 2 er valgt.
nute>> kanon. testen virker, men selectindex giver bare lige et problem.
boxen viser jo det tidligere valgte 'valg' der ligger gemt i DB. dvs. at hvis værdien xyx er valgt (xyx er den vædi der ikke må gemmes ved "afslut") ja så er det index 0 der skal være ulovlig. Hvis nu der står 'æøæ' på index 0 (fra DB), men brugeren vælger nummer 2 på listen 'xyx'før tryj på "afslut" sker, ja så er det index 2 der er ulovlig. Kan man ikke bare lade if sætningen evaluere indholdet af index 0, index 1 osv.
har prøvet med if( objForm.selectbox.selectedIndex.value == 'xyx' ) men så sker der slet ikke noget...
det virker hvis jeg tager et valg, men ikke hvis jeg blot submitter med den værdi der står i selectboxen fra DB ( ligesom om den slet ikke bliver evalueret, hvis jeg ikke laver et nyt valg fra boxen)
Huhej så virker det da.... <option><%=rs.fields("ActionType")%></option> manglede en value=xxxxx
Takker og bukker. hvis du vil sende et svar får du point >>nute lille spørgsmål hvorfor står der nogle gange <!-- //--> og nogle gange ikke. hvad betyder det egentlig?
skjuler javascript koden for browsere der ikke forstår javascript ;o]
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.