webForumDet fria alternativet

Om finns i selectbox

7 svar · 160 visningar · startad av nill

nillMedlem sedan okt. 2001387 inlägg
#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

easMedlem sedan sep. 2001274 inlägg
#2

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

Hur ser databasen och koden ut?

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

JojoxxMedlem sedan juni 20004 306 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

nillMedlem 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.

PatrikBMedlem sedan mars 20002 713 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 *=-

JojoxxMedlem sedan juni 20004 306 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

nillMedlem 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 :)

JojoxxMedlem sedan juni 20004 306 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

Genererad på 363 ms · cache AV · v20260730165559-full.f96bc7eb