Tryk på Button skal tilføje række med x antal DIVs
Jeg mangler en funktion på en side, som kan tilføje en række med x antal DIVs på denne række.Denne funktion skal kunne fungere i x antal afsnit, men det er jo bare at kopiere JavaScript/HTML ned det antal gange det ønskes, og tilrette overskrift, names/IDs m.m.
I hver enkelt afsnit skal man til højre for overskriften kunne tilføje én række ad gangen. Om der skal noget onClick til, aner jeg ikke. Nu har jeg i det viste eksempel valgt <input type="submit">.
Som udgangspunkt vil der til en start bare være tomme afsnit nederst på siden, som vil se nogenlunde sådan her ud:
NYOPSÆTNING AF HARDWARE [Button Tilføj række til registrering af nyopsat hardware]
NEDTAGNING AF HARDWARE [Button Tilføj række til registrering af nedtaget hardware]
Når man tilføjer ekstra rækker i de respektive afsnit, kommer siden til at se nogenlunde sådan her ud (data udfyldes i de enkelte tekstbokse. Når man er færdig med én række, trykker man på [Button Tilføj række til registrering af nyopsat hardware] for at udfylde det næste sæt data, og den første textbox får automatisk fokus):
NYOPSÆTNING AF HARDWARE [Button Tilføj række til registrering af nyopsat hardware]
[textbox_add_new_hw_1] [textbox_add_new_hw_2] [textbox_add_new_hw_3] [Button Slet denne unikke række] (<- første tilføjede række)
[textbox_add_new_hw_4] [textbox_add_new_hw_5] [textbox_add_new_hw_6] [Button Slet denne unikke række] (<- anden tilføjede række)
[textbox_add_new_hw_7] [textbox_add_new_hw_8] [textbox_add_new_hw_9] [Button Slet denne unikke række] (<- tredie tilføjede række)
NEDTAGNING AF HARDWARE [Button Tilføj række til registrering af nedtaget hardware]
[textbox_remove_hw_1] [textbox_remove_hw_2] [textbox_remove_hw_3] [Button Slet denne unikke række] (<- første - og i dette tilfælde eneste - tilføjede række)
Det hele bliver så submitted til allersidst, når man er færdig med at udfylde hele formularen, og det bliver lagt ned i en database. Så værdien i hver enkelt textbox skal have tildelt deres unikke name og id, før det kan smides i en database. Det kan vel klares med en for-next løkke? Det skal være op til dig.
Den næstsidste ting:
1. Man opdager, at man allerede har indtastet data på en given hardware. Denne række er påbegyndt, nogle af (eller alle) textboxene indeholder et eller andet
2. Man får trykket på [Button Tilføj række til registrering af nyopsat hardware], men når ikke at udfylde noget, før man opdager, at man egentlige ikke skulle bruge denne ekstra række
Så skal følgende ske, når man trykker på [Button Slet denne unikke række] på den givne række:
1. Jeg starter med at indtaste, men finder ud af, at jeg allerede har indtastet denne vare én gang. rækken skal slettes, det var en fejl. Men jeg vil gerne have en popup op, som advarer mig om, at felterne ikke er tomme. "Vil du slette denne række alligevel? Data vil gå tabt! [Button Ja] / [Button Nej]"
2. Alle textboxe er tomme, slet bare rækken øjeblikkeligt; intet går tabt.
ALLER SIDSTE TING
Kan det lade sig gøre at få en eller anden form for tabindex på den enkelte af de 3 textboxe + [Button Slet denne unikke række], så det bliver lækkert, nemt og hurtigt for brugerne at tabulere sig igennem den pågældende række? Jeg tænkte, at man for hver række kan lave et selvstændigt script/tabindex, så man på den enkelte række tabulerer sig fra første felt og mod højre. Og det kunne fungere på samme måde for den næste række man tilføjer. Næste gang, der tilføjes en række, kan man vel tage den sidste værdi af tabindex og lægge 1 til? Tænkt eksempel:
Jeg tilføjer den første linie, og indtaster mine data. Første tabindex vil blive 1000, og hhv 1001, 1002 og 1003 for:
[textbox_add_new_hw_1 tabindex="1000"] [textbox_add_new_hw_2 tabindex="1001"] [textbox_add_new_hw_3 tabindex="1002"] [Button Slet denne unikke række tabindex="1003"]
Uanset hvilet afsnit jeg nu vælger at oprette en ekstra række i, fortsættes hvor vi slap med den første linie. Næste tabindex bliver altså 1004:
[textbox_remove_hw_1 tabindex="1004"] [textbox_remove_hw_2] tabindex="1005" [textbox_remove_hw_3 tabindex="1006"] [Button Slet denne unikke række tabindex="1007"]
Submit allernederst på siden kan jeg bare give et meget højt tabindex, så man er sikker på, at den vil få fokus til aller-aller sidst. F.eks. <input type="submit" tabindex="5000">
HTML ser ud som nedenfor. Jeg håber én af eksperterne kan fylde noget JavaScrpting ind, og udføre dette for 200 point :)
<html>
<head></head>
<body onload="document.frmNewHardware.a.focus();"> <-?
<div class="container">
<form name="frmNewHardware">
<div>NYOPSÆTNING AF HARDWARE<input type="submit" name="addnewrow" value="Tilføj ny hardware" tabindex="?"></div>
<div style="float: left;"><input type="textbox" class="input" name="a1" id="a1" tabindex="?"></div>
<div style="float: right;"><input type="textbox" class="input" name="a2" id="a2" tabindex="?"></div>
<div style="float: right;"><input type="textbox" class="input" name="a3" id="a3" tabindex="?"></div>
<div style="float: right;"><input type="submit" name="deletethisrow" value="Slet" tabindex="?"></div>
<div style="clear: both;"></div>
</form>
<form name="frmWithdrawnHardware">
<div>NEDTAGNING AF HARDWARE<input type="submit" name="addnewrow" value="Nedtag hardware" tabindex="?"></div>
<div style="float: left;"><input type="textbox" class="input" name="b1" id="b1" tabindex="?"></div>
<div style="float: right;"><input type="textbox" class="input" name="b2" id="b2" tabindex="?"></div>
<div style="float: right;"><input type="textbox" class="input" name="b3" id="b3" tabindex="?"></div>
<div style="float: right;"><input type="submit" name="deletethisrow" value="Slet" tabindex="?"></div>
<div style="clear: both;"></div>
</form>
</div>
</body>
</html>