Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Javascript verplichte velden check werkt niet

None
2 antwoorden
  • Hallo iedereen,

    Ik heb door wat knip en plakwerk en wat eigen typwerk de volgende code in elkaar gezet (zie onderaan, maakt het wat leesbaarder). Deze code behoort te zorgen dat wanneer het veld achternaam niet is ingevuld er een messagebox opkomt. Dit systeem behoort dusdanig flexibel te zijn dat ik er willekeurige velden in kan zetten welke hij checkt.

    Het checken werkt goed. Alleen hij is overijverig. Ook wanneer de velden zijn ingevoerd geeft hij foutmeldingen aan. Ik heb ook al andere systemen uitgeprobeert maar voor zover ik kan zien is dit de meest flexibele om ook weer in andere formulieren te verwerken (moet nog bij een stuk of 6 andere gebeuren in korte termijn en ontelbaar op de lange termijn).

    Ik ben niet zo'n held in javascript maar kan geen fout vinden. Wie kan me helpen?

    Mvg Rainmaker


    [code:1:6bee933c14]<SCRIPT LANGUAGE="JavaScript">
    <!– Begin
    var isNav4 = false, isNav5 = false, isIE4 = false;
    var strSeperator = "-";
    //var achtien = "false"


    // Verplichte velden check
    function formCheck(formobj){
    // name of mandatory fields
    var fieldRequired = Array("achternaam");
    // field description to appear in the dialog box
    var fieldDescription = Array("achternaam");
    // dialog message
    var alertMsg = "Vul onderstaande verplichte velden in:
    ";

    var l_Msg = alertMsg.length;

    for (var i = 0; i < fieldRequired.length; i++){
    var obj = formobj.elements[fieldRequired[i]];
    if (obj){
    if (obj.type == null){
    var blnchecked = false;
    for (var j = 0; j < obj.length; j++){
    if (obj[j].checked){
    blnchecked = true;
    }
    }
    if (!blnchecked){
    alertMsg += " - " + fieldDescription[i] + "
    ";
    }
    continue;
    }

    switch(obj.type){
    case "checkbox":
    if(obj.checked == false)
    {
    alertMsg += " - " + fieldDescription[i] + "
    ";
    }
    break;
    case "select-one":
    if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
    alertMsg += " - " + fieldDescription[i] + "
    ";
    }
    break;
    case "select-multiple":
    if (obj.selectedIndex == -1){
    alertMsg += " - " + fieldDescription[i] + "
    ";
    }
    break;
    case "text":
    case "textarea":
    if (obj.value == "" || obj.value == null){
    alertMsg += " - " + fieldDescription[i] + "
    ";
    }
    break;
    default:
    }
    }
    }

    if (alertMsg.length != l_Msg){
    alert(alertMsg);
    return false;
    }
    //Leeftijd check 18 verplichte velden
    /*if (achtien == false) {
    /*for (var i = 0; i < fieldRequiredC.length; i++){
    var obj = formobj.elements[fieldRequiredC[i]];
    if (obj){
    if (obj.value == "" || obj.value == null){
    alertMsg += " - " + fieldDescriptionC[i] + "
    ";
    }
    }
    }
    if (alertMsg.length > l_Msg){
    alertMsg += alertMsgC;
    alert(alertMsg);
    return false;
    }
    }*/
    // Check Akkoord aanmelding
    /*for (var i = 0; i < fieldRequiredD.length; i++){
    var obj = formobj.elements[fieldRequiredD[i]];
    if (obj){
    if(obj.checked == false) {
    alertMsg += " - " + fieldDescriptionD[i] + "
    ";
    }
    }
    }
    if (alertMsg.length > l_Msg){
    alert(alertMsg);
    return false;
    }*/
    }

    –>
    </script>[/code:1:6bee933c14]

    Ik heb zelf overigens ook sterk het vermoeden dat de laatste 2 checks niet nodig zijn binnen het gebeuren. Deze heb ik doormiddel van /* en */ buiten werking gesteld/
  • Er mag een slotje op. Het probleem zat erindat iklater nog een keer verschillende hidden-inputshad staan met dezelde naam. Dit bleek een fout te geven.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.