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

Perl / javascript

Olaf Liflaf
7 antwoorden
  • In een CGI script vind ik een javascript dat de invoer controleert van een veld. Het is simpel en werkt goed. Alleen weet ik te weinig van perl / javascript om het uit te breiden met een controle op een punt of een komma. Deze en andere leestekens mogen niet in het veld voorkomen. Anderszins, er mogen alleen maar cijfers in.


    Kan iemand mij helpen ?


    Het huidige script:

    print "var field = form.price;";
    print "var sellprice= parseInt(field.value);";
    print "if (!sellprice) {";
    print "alert('Geef een getal in koopprijs veld ');";
    print "return false;}";


    Bij voorbaat dank,


    Olaf
  • print "var field = form.price;";
    print "var sellprice= parseInt(field.value);";
    print "if (!sellprice || !sellprice.match(/^[0-9]+$/)) {";
    print "alert('Geef een getal in koopprijs veld ');";
    print "return false;}";

    Het maakt verder niet zoveel uit of je in perl of html bezig bent. Perl parsed de code eerst, waarna er javascript en html naar de browser wordt gestuurd. Je kunt sellprice dus niet met perl gaan controleren (zonder opnieuw contact te maken met de server)
  • Jurriaan bedankt zover. Alleen krijg ik nog een javascript error. Ergens ontbreekt een slash ( / ). Enig idee waar ?

    Olaf
  • oh ja, natuurlijk, je moet in de perl-statement nog het dollarteken escapen! Anders gaat Perl uit van een perlvariabele

    print "if (!sellprice || !sellprice.match(/^[0-9]+\$/)) {";
  • Krijg nu een andere melding, 'dat de functie niet wordt ondersteund'.

    Het wordt tijd voor wat Pinkpop nu.

    Olaf
  • En dat komt dan weer doordat je de waarde erboven parseInt(). De method match werkt alleen bij een string. Dus ik zou dat parseInt()wegalen.

    Het is trouwens ook wel zo netjes om alle perlstatements af te sluiten met een
    newline.
  • Jurriaan, wederom mijn dank. Het totale script is in India geschreven. Ik kan het wel volgen maar aanpassen is niet mijn sterkste kant. Ik ben afhankelijk van de experts in deze groep.

    Olaf

Beantwoord deze vraag

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