Toon posts:

[JS] Validatie-issue

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb het jsval framework in gebruik genomen (versie 1.3.4). Alles leek in eerste instantie goed te werken (ik heb zo'n 20 vragen welke op gecheckt moet worden of ze ingevuld zijn of niet, waarvan 19 als radio-buttons opgemaakt zijn). nou gaat de text-input goed, maar de radio-buttons niet (deze worden simpelweg niet gecontroleerd).

is dit een bekend probleem met jsVal? kent iemand dit framework uberhaupt?

kan iemand me anders een goed framework aanraden, waar ik gewoon velden kan markeren voor validatie, waarna deze gecontroleerd worden onsubmit?

edit: ik heb inmiddels gezocht op google enzovoorts, maar kom meestal hierop uit. ik heb het formulier inmiddels gebouwd, en zou het liefst niet heel m'n formulier opnieuw opbouwen.

[ Voor 14% gewijzigd door Verwijderd op 12-02-2009 16:20 ]


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 19:56

MueR

Admin Tweakers Discord

is niet lief

Zonder testcase of voorbeeldcode is het lastig zeggen. Heb je iets waarop wat na te kijken is?

Anyone who gets in between me and my morning coffee should be insecure.


  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

En als ik javascript uitzet word er helemaal nergens naar gekeken :)

Maar waarom zoek je een framework? Het zou toch gewoon een functie kunnen zijn of een "simpel" scriptje wat je gemakkelijk kan aanpassen met wat kennis van javascript? :)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
disjfa schreef op donderdag 12 februari 2009 @ 16:28:
En als ik javascript uitzet word er helemaal nergens naar gekeken :)

Maar waarom zoek je een framework? Het zou toch gewoon een functie kunnen zijn of een "simpel" scriptje wat je gemakkelijk kan aanpassen met wat kennis van javascript? :)
Dit soort werkzaamheden ga ik vaak krijgen, daarom ben ik op zoek naar 'n flexibel framework. Het gaat vooral om enquetes die ik voor klanten maak, en dat is niet altijd straightforward tekstveldjes 1 voor 1 doorlopen. het liefste zou ik dus, zoals in jsVal, velden een attribuut required="1" meegeven of dit onload initialiseren, waarna het script uitzoekt of het een textinput, radio of textarea is, en vervolgens een "case" doorloopt. jsVal doet dit opzich, maar het stuk wat radio's zou moeten doen werkt niet. ik kan eventueel even de library mailen...

Ik heb nu bijvoorbeeld: 29 radio's, 1 set van 12 checkboxes waarvan er minimaal 2 ingevuld moeten worden (waar ik nu dus al wel een goede functie voor heb), en 7 textfields. Ik kan helaas geen voorbeeld laten zien, omdat het voor een klant is en nog niet live is.

Verwijderd

Kan je de relevante code niet in een .html zetten en ergens uploaden / hier plaatsen (als het niet honderden regels zijn..)?? Dan kunnen we wat meer, want we weten nu niet wat je precies hebt... :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 12 februari 2009 @ 17:55:
ik kan eventueel even de library mailen...
Ondermijnt lekker het nut van dit forum als je per e-mail met mensen je problemen gaat oplossen :Z Zo profiteer jij er alleen van en mensen die dit topic ooit nog eens tegen komen wegens dezelfde problemen schieten er niets mee op.
Verwijderd schreef op donderdag 12 februari 2009 @ 17:55:
Ik kan helaas geen voorbeeld laten zien, omdat het voor een klant is en nog niet live is.
Dan maak je een (uitgeklede!!) testcase waarin je enkel de relevante scripts en html zet om je probleem te demonstreren en vervolgens post je de (again: relevante!) code hier (code tags) of zet je je test-case ergens online.

[ Voor 8% gewijzigd door RobIII op 12-02-2009 19:20 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, initialiseren van de verplichte vragen, deze functie wordt body onload uitgevoerd.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    function initValidation() {
        var objForm = document.forms[0];
        objForm.vraag1.required = 1;;
        objForm.matrix1.required = 1;
        objForm.matrix2.required = 1;
        objForm.matrix3.required = 1;
        objForm.matrix4.required = 1;
        objForm.matrix5.required = 1;
        objForm.matrix6.required = 1;
        objForm.matrix7.required = 1;
        objForm.matrix8.required = 1;
        objForm.matrix9.required = 1;
        objForm.matrix10.required = 1;
        objForm.matrix11.required = 1;
        objForm.vraag25.required = 1;
        objForm.vraag26.required = 1;
        objForm.vraag27.required = 1;
        }

vervolgens draait onsubmit de functie "return validateStandard();". Deze werkt goed voor textinputs, maar niet voor radio-buttons. het stukje voor radio-buttons in de library zit alsvolgt in elkaar:
JavaScript:
1
2
3
4
5
6
7
8
9
10
case "radio":
this.required=_parseBoolean(this.required||element.getAttribute('required'));
this.values=new Array();
if(element.checked){
this.values[0]=element.value;
}
this.elements[0]=element;
break;
};
};


is dit genoeg of hebben jullie meer code nodig?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RobIII schreef op donderdag 12 februari 2009 @ 19:20:
[...]

Ondermijnt lekker het nut van dit forum als je per e-mail met mensen je problemen gaat oplossen :Z Zo profiteer jij er alleen van en mensen die dit topic ooit nog eens tegen komen wegens dezelfde problemen schieten er niets mee op.


[...]

Dan maak je een (uitgeklede!!) testcase waarin je enkel de relevante scripts en html zet om je probleem te demonstreren en vervolgens post je de (again: relevante!) code hier (code tags) of zet je je test-case ergens online.
helaas kan ik niet meer code van het html-bestand online zetten dan ik net heb gedaan. correcties aan het framework submit ik terug aan de eigenaar (tis een open-source ding), met beschrijving, en zal ik hier ook even mededelen. Ik snap het doel van dit forum, maar ik kan helaas niet om alle NDA's heen die we met klanten afsluiten, dit zou me erg duur kunnen komen te staan.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op vrijdag 13 februari 2009 @ 09:50:
[...]


helaas kan ik niet meer code van het html-bestand online zetten dan ik net heb gedaan. correcties aan het framework submit ik terug aan de eigenaar (tis een open-source ding), met beschrijving, en zal ik hier ook even mededelen. Ik snap het doel van dit forum, maar ik kan helaas niet om alle NDA's heen die we met klanten afsluiten, dit zou me erg duur kunnen komen te staan.
Je kan niet meer code van het html-bestand online zetten... Volgens mij zie ik helemaal geen html-code, maar dat kan aan mij liggen hoor. Je kan toch wel het form dat je hebt zo uitkleden dat het nieteens meer wat te maken heeft met de klant? Anders denk ik dat niet veel mensen je kunnen helpen hiermee..

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ik neem aan dat je zoiets hebt in je HTML:
HTML:
1
2
3
<input type="radio" name="vraag27" value="1"> 1
<input type="radio" name="vraag27" value="2"> 2
<input type="radio" name="vraag27" value="3"> 3

objForm.vraag27 levert in dit geval geen element op maar een nodeList. Het lijkt me dat je het required attribuut op elke radio-input moet zetten, en gezien de functie uit de library kan je dat ook als HTML attribuut doen (waar overigens o.a. Opera al native ondersteunding voor biedt aangezien het required attribuut onderdeel is van WebForms2.0 en dus straks ook onderdeel uitmaakt van HTML5).

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Blijft nog steeds staan dat de TS volgens mij geen rekening houdt dat JS clientside draait en dus niet te vertrouwen is (of JS misschien zelfs helemaal uit heeft staan). Maw. denk je er aan om serverside dezelfde check nogmaals te doen ?

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Cartman! schreef op vrijdag 13 februari 2009 @ 10:15:
Blijft nog steeds staan dat de TS volgens mij geen rekening houdt dat JS clientside draait en dus niet te vertrouwen is (of JS misschien zelfs helemaal uit heeft staan). Maw. denk je er aan om serverside dezelfde check nogmaals te doen ?
Zou kunnen, maar client-side testen is wel een stuk gebruikersvriendelijker (d.w.z. je ziet meteen of je wat vergeten bent ipv na een page reload)

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Tuurlijk, maar de clientside check moet je als extra beschouwen. De serverside check is leading.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
crisp schreef op vrijdag 13 februari 2009 @ 10:04:
Ik neem aan dat je zoiets hebt in je HTML:
HTML:
1
2
3
<input type="radio" name="vraag27" value="1"> 1
<input type="radio" name="vraag27" value="2"> 2
<input type="radio" name="vraag27" value="3"> 3

objForm.vraag27 levert in dit geval geen element op maar een nodeList. Het lijkt me dat je het required attribuut op elke radio-input moet zetten, en gezien de functie uit de library kan je dat ook als HTML attribuut doen (waar overigens o.a. Opera al native ondersteunding voor biedt aangezien het required attribuut onderdeel is van WebForms2.0 en dus straks ook onderdeel uitmaakt van HTML5).
zoiets vermoedde ik al. is er geen mogelijkheid om de case in jsVal aan te passen zodat ie dit wel goed doet? daar is mijn js kennis helaas te karig voor...

Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Verwijderd schreef op vrijdag 13 februari 2009 @ 11:18:
[...]


zoiets vermoedde ik al. is er geen mogelijkheid om de case in jsVal aan te passen zodat ie dit wel goed doet? daar is mijn js kennis helaas te karig voor...
Het lijkt me niet verstandig om uberhaupt iets met JS te doen als je kennis daarover karig is. Dan blijft het een 'black box' en zul je voortdurend afhankelijk zijn van welwillende forummers die jouw problemen op moeten lossen.

Daarbij heeft jsval een eigen support forum: http://developer.berlios.de/projects/jsval/

Succes ermee! :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Rekcor schreef op vrijdag 13 februari 2009 @ 12:04:
[...]


Het lijkt me niet verstandig om uberhaupt iets met JS te doen als je kennis daarover karig is. Dan blijft het een 'black box' en zul je voortdurend afhankelijk zijn van welwillende forummers die jouw problemen op moeten lossen.

Daarbij heeft jsval een eigen support forum: http://developer.berlios.de/projects/jsval/

Succes ermee! :)
Ik heb m'n vraag ook daar gepost, maar verwacht niet op korte termijn een antwoord. Wat betreft iets met JS doen terwijl mijn kennis karig is: ik doe m'n best om meer te leren over javascript, maar het enige wat ik er op het moment mee doe is dus dit soort validatie. dit lukte in eerste instantie, maar wel op 'n houtje-touwtje manier. ik wil hier vanaf, maar heb niet de tijd/aandacht om alles over js te leren. dus ik denk: ik neem een framework in gebruik, welke makkelijk te implementeren valt. jsVal is, vind ik, een goed framework, er zit alleen een bug in, het doorlopen van een array van checkboxes. als dit aangepast is kan ik prima met dit framework uit de voeten en er zelf mee gaan klooien zonder jullie ermee lastig te vallen.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Maar denk je er nog aan het ook serverside te validere ipv. alleen client-side?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Cartman! schreef op vrijdag 13 februari 2009 @ 15:12:
Maar denk je er nog aan het ook serverside te validere ipv. alleen client-side?
gebeurt al (standaardfunctionaliteit van het platform waar ik het op in richt), maar ik wil juist eerst clientside een controle (ook voor toekomstige projecten).

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ok, dan is t goed ;) :)
Pagina: 1