webForumDet fria alternativet

Om finns i selectbox

JavaScript

7 svar · 162 visningar · startad av nill

Medlem sedan okt. 2001387 inlägg
Frågan#1

Har en Selectbox med "dynamisk" innehåll. Alltså den hämtar sitt innehåll från en accessdatabas med asp.

Men nu till Js-problemet: Mitt formulär ser ut så att man kan antingen välja en befintlig kategori(från selectboxen) eller skapa en ny. Nu vill jag att mitt js-valideringsscript ska kolla så att om användare väljer att skapa en ny kategori, att det namnet inte redan finns i SELECTboxen,
hur gör jag detta ??

små eller stora bokstäver ska kvitta

Medlem sedan sep. 2001269 inlägg
#2

Är det inte lättare attgöra i ASP?

Hur ser databasen och koden ut?

------------------
Schöndells webbsajt

Medlem sedan juni 20004 308 inlägg
#3

Det är inte bara lättare, det skall göras på serversidan för att du skall vara säker på att du inte får in "skräp" i databasen. Men för att svara på din fråga;

om selectobj objektreferens på select-listan (document.formulärsnamn.selectlistnamn) och textobj är objektreferens på text-fältet.

for(n=0;n<selectobj.length;n++){
if(selectobj[n].value==textobj.value){
// kod som skall köras ifall värdet redan finns i listan.
}
}

------------------
/ J

Medlem sedan okt. 2001387 inlägg
#4

Tack så mycket för koden. Den funkade ganska bra. Lite dåligt är om man skriver kategorin med t.ex. ett mellanslag efter så fungerar det inte.

och varför skulle det vara bättre att göra det med asp ? det är ju jobbigare för användaren att inte kunna ändra direkt utan måste vid felmeddelandet då gå tillbaka och skriva om allt.

Medlem sedan mars 20002 836 inlägg
#5

När man validerar på server sidan och hittar fel så visar man formet igen med alla data som användaren fyllt i och "printar" ut ett felmess till användaren, tömmer field avmarkerar select list och sätter focus på fältet som är fel med js.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

Medlem sedan juni 20004 308 inlägg
#6

Tack så mycket för koden. Den funkade ganska bra. Lite dåligt är om man skriver kategorin med t.ex. ett mellanslag efter så fungerar det inte.

Det skall det göra. Däremot är ju inte "kalle" samma sak som "kalle " om det var det du syftade på.

och varför skulle det vara bättre att göra det med asp ? det är ju jobbigare för användaren att inte kunna ändra direkt utan måste vid felmeddelandet då gå tillbaka och skriva om allt.

Det som sköts på serversidan har du kontroll på. Överlåter du detta på klienten så är det beroende om denna har stöd för javascript att valideringen fungerar -- ingen snygg lösning utan ett billigt "fattigmans-substitut". Har du tillgång till ASP så är det bättre. Däremot gör det ju inget att du kombinerar med JavaScript så att om detta är aktiverat och stöds så underlättar det för användaren.

------------------
/ J

Medlem sedan okt. 2001387 inlägg
#7

det har ni iofs rätt i. Men när jag har ett community om 50 personer så är nog javascript en fullt duglig lösning än så länge.

Men så fort jag får tid ska jag nog göra en ordentlig lösning på det hela.

Kan man inte få det att fungera med "Kalle" och "Kalle " ? annars är det ju hur lätt som hels att komma runt :)

Medlem sedan juni 20004 308 inlägg
#8

Eftersom även "Kalle#Karlsson" och "Kalle##Karlsson" är olika om "#" symboliserar mellanslag är det lika bra att plocka bort alla ev. mellanslag och kolla. Det löser vi enkelt såhär;

function removeSpaces(){ return(this.replace(/\s/g,"")); }
String.prototype.removeSpaces=removeSpaces;

for(n=0;n<selectobj.length;n++){
if(selectobj[n].value.removeSpaces()==textobj.value.removeSpaces()){
// kod som skall köras ifall värdet redan finns i listan.
}
}

------------------
/ J

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)