controle input field

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hoi,

Ik gebruik volgende input veld , hier staat de tekst naam in het veld zelf , indien men er met de muis over gaat is dit leeg

Code:
<input type="text" name="xxx" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Naam':this.value;" value="Naam"  />


Ik gebruik een form validator om te controleren of het veld ingevuld is, dit werkt nu niet omdat het veld nu als ingevuld wordt beschouwd

Is hier een oplossing voor ?
 
In je validator niet alleen controleren of het veld ingevuld is, maar ook controleren of de waarde ervan ongelijk is aan de defaultValue.
 
In dit geval is defaultValue inderdaad de waarde achter 'value='. Het woord "defaultValue" in mijn vorige bericht is een link waar je op kan klikken om er meer over te lezen. Ik dacht dat je gebruik maakte van een eigen validatie. Als dat niet zo is moet je kijken of je met die validatie kan controleren of de waarde van een input ongelijk is aan een bepaalde tekst.
 
Bedankt

mis zelf de kennis

dit is het script voor valideren (gedeelte van meerdere functies)

als ik nou op naam kon laten controleren is het goed?

Code:
function ValidationSet(inputitem, msgs_together)
{
    this.vSet = new Array();
    this.add = add_validationdesc;
    this.validate = vset_validate;
    this.itemobj = inputitem;
    this.msgs_together = msgs_together;
}
 
Ik heb even gekeken op de website die je noemde en je kan een eigen validatie toevoegen door een functie aan te maken. Je zou dan zoiets kunnen doen:
[js]function nietStandaard()
{
var frm = document.forms["myform"];
if(frm.xxx.value == frm.xxx.defaultValue)
{
sfm_show_error_msg('U moet een naam invoeren',frm.xxx);
return false;
}
else
{
return true;
}
}[/js]
Waarbij je "myform" en "xxx" vervangt door de juiste namen.
 
Ik heb deze functie toegevoegd

function DoCustomValidation()
{
var frm = document.forms["nieuwsbrief"];
if(frm.Naam.value == frm.Naam.defaultValue)
{
sfm_show_error_msg('U moet een naam invoeren',frm.Naam);
return false;
}
else
{
return true;
}
}

het input veld (form heeft naam nieuwsbrief)

Code:
<input type="text" name="test" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Naam':this.value;" value="Naam"  />

en in de functie onder het form

Code:
frmvalidator.setAddnlValidationFunction("DoCustomValidation");

maar krijg volgende foutmelding

validatie.jpg
 
Laatst bewerkt:
Je moet geen aanhalingsteken rondom de functienaam gebruiken:
[js]frmvalidator.setAddnlValidationFunction(DoCustomValidation);[/js]

Dat is ten minste wat in de foutmelding staat. Ik zie dat het ook met aanhalingstekens op de website van die validator staat. Blijkbaar is dat verkeerd.

[edit]Overigens klopt de code van DoCustomValidation niet helemaal. Je moet de waarde van het name-attribuut gebruiken, niet van het value-attribuut. Dus [js]if(frm.test.value == frm.test.defaultValue)[/js][/edit]
 
Laatst bewerkt:
bedankt,,,,helaas wil maar niet lukken , een en ander geprobeerd, en laat ik de aanhalingstekens weg vervalt de gehele controle
(dus ook van de andere input veldjes die erin staan)
 
Laatst bewerkt:
Staat het ergens online en kan je dan eens de link geven?
Zo niet, kan je hier eens de volledige code posten?
 
http://www.u-site.nl/gen_validatorv4.js

ik heb wat gespeeld dus kan even wat anders zijn dan hierboven besproken


ik moet de functie onder het form zetten !? staat nu bovenaan in gen_validatorv4.js.js , zie post hieronder


Code:
  <form method="post" name="nieuwsbrief" action="xxxxxxxxxxxxxxxxxxxxx" target="_blank">
           <table id="nieuwsbrief">
             <tr>
               <td>Wil je op de hoogte blijven van onze laatste <br />
                 nieuwtjes,schrijf je dan in op onze nieuwsbrief</td>
             </tr>
             <tr>
               <td><input type="text" name="YMP0" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'E-mail adres':this.value;" value="E-mail adres"   /></td>
             </tr>
             <tr>
               <td><input type="text" name="YMP1" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Naam':this.value;" value="Naam"  /></td>
             </tr>
             <tr>
               <td>Selecteer uw interesse:</td>
             </tr>
             <tr>
               <td><select name="intrests">
                 <option selected="selected" value="" >Kies</option>
                 <option value="CAT3">aaaa</option>
                 <option value="CAT8">bbbbi</option>
               </select></td>
             </tr>
             <tr>
               <td><input type="radio" name="action" value="subscribe" checked />
                 Inschrijven
                 <input type="radio" name="action" value="unsubscribe" />
                 Uitschrijven</td>
             <tr>
               <td><input type="submit" value="Verzenden"  />
                 &nbsp;</td>
             </tr>
           </table>
         </form>                   
                    
          <!-- Validatie formulier--><script type="text/javascript">
//<![CDATA[
                    var frmvalidator  = new Validator("nieuwsbrief");
                    frmvalidator.EnableMsgsTogether();
                    //frmvalidator.addValidation("YMP1","req","Vul a.u.b uw Naam in");
//                    frmvalidator.addValidation("YMP1","maxlen=20");
                    frmvalidator.addValidation("YMP0","req","Vul a.u.b uw E-Mail adres  in");
                    frmvalidator.addValidation("YMP0","email","Vul a.u.b een geldig E-Mail adres in");
					frmvalidator.addValidation("intrests","req","Maak een keuze a.u.b");
                    //frmvalidator.setAddnlValidationFunction("YMP1","req","DoCustomValidation")
                    //]]>
                    //]]>
          </script> <!-- /validatie formulier-->
           <!-- /Formulier tegen bovenkant-->
        </div>
 
Laatst bewerkt:
Ik zie dat er verschillende voorbeelden bijzitten, deze kan interessant zijn:
(customval.....


Code:
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE html
   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      Example for Validator
    </title>
    <style type="text/css" xml:space="preserve">
BODY, P,TD{ font-family: Arial,Verdana,Helvetica, sans-serif; font-size: 10pt }
A{font-family: Arial,Verdana,Helvetica, sans-serif;}
B {	font-family : Arial, Helvetica, sans-serif;	font-size : 12px;	font-weight : bold;}
.error_strings{ font-family:Verdana; font-size:10px; color:#660000;}
</style><script language="JavaScript" src="gen_validatorv4.js"
    type="text/javascript" xml:space="preserve"></script>
  </head>
  <body>
    <form action="" name="myform" id="myform">
      <table cellspacing="2" cellpadding="2" border="0">
        <tr>
          <td align="right">
            First Name
          </td>
          <td>
            <input type="text" name="FirstName" />
          </td>
        </tr>
        <tr>
          <td align="right">
            Last Name
          </td>
          <td>
            <input type="text" name="LastName" />
          </td>
        </tr>
        <tr>
          <td align="right">
            EMail
          </td>
          <td>
            <input type="text" name="Email" />
          </td>
        </tr>
        <tr>
          <td align="right">
            Phone
          </td>
          <td>
            <input type="text" name="Phone" />
          </td>
        </tr>
        <tr>
          <td align="right">
            Address
          </td>
          <td>
            <textarea cols="20" rows="5" name="Address"></textarea>
          </td>
        </tr>
        <tr>
          <td align="right">
            Country
          </td>
          <td>
            <select name="Country">
            <option value="" selected="selected">
              [choose yours]
            </option>
            <option value="008">
              Albania
            </option>
            <option value="012">
              Algeria
            </option>
            <option value="016">
              American Samoa
            </option>
            <option value="020">
              Andorra
            </option>
            <option value="024">
              Angola
            </option>
            <option value="660">
              Anguilla
            </option>
            <option value="010">
              Antarctica
            </option>
            <option value="028">
              Antigua And Barbuda
            </option>
            <option value="032">
              Argentina
            </option>
            <option value="051">
              Armenia
            </option>
            <option value="533">
              Aruba
            </option></select>
          </td>
        </tr>
        <tr>
          <td align="right"></td>
          <td>
            <div id="myform_errorloc" class="error_strings">
            </div>
          </td>
        </tr>
        <tr>
          <td align="right"></td>
          <td>
            <input type="submit" value="Submit" />
          </td>
        </tr>
      </table>
    </form><script language="JavaScript" type="text/javascript"
    xml:space="preserve">//<![CDATA[
//You should create the validator only after the definition of the HTML form
  var frmvalidator  = new Validator("myform");
 frmvalidator.EnableOnPageErrorDisplaySingleBox();
 frmvalidator.EnableMsgsTogether();
 
 frmvalidator.addValidation("FirstName","req","Please enter your First Name");
  frmvalidator.addValidation("FirstName","maxlen=20",	"Max length for FirstName is 20");
  frmvalidator.addValidation("FirstName","alpha_s","Name can contain alphabetic chars only");
  
  frmvalidator.addValidation("LastName","req","Please enter your Last Name");
  frmvalidator.addValidation("LastName","maxlen=20","For LastName, Max length is 20");
  
  frmvalidator.addValidation("Email","maxlen=50");
  frmvalidator.addValidation("Email","req");
  frmvalidator.addValidation("Email","email");
  
  frmvalidator.addValidation("Phone","maxlen=50");
  frmvalidator.addValidation("Phone","numeric");
  
  frmvalidator.addValidation("Address","maxlen=50");
  frmvalidator.addValidation("Country","dontselect=0");
  
    function DoCustomValidation()
    {
        var frm = document.forms["myform"];
        if(frm.FirstName.value == 'Bob')
        {
            sfm_show_error_msg("Bob, you can't submit this form. Go away! ");
            return false;
        }
        else
        {
            return true;
        }
    }
	
  frmvalidator.setAddnlValidationFunction(DoCustomValidation);
//]]></script>
  </body>
</html>

een en ander nagebootst , maar bij mij valt de voledige validatie dan uit
 
Laatst bewerkt:
het werkt nu met:


Code:
 frmvalidator.addValidation("YMP1","req","Vul je naam in");
  frmvalidator.addValidation("YMP1","maxlen=20",	" 20");
  frmvalidator.addValidation("YMP1","alpha_s","alleen letters invullen");

bovenstaande code moest ook erbij

------------------------------------

dit werkt niet
Code:
<td><input type="text" name="YMP1" onclick="this.value='';" onfocus="this.select()" onblur="this.value=!this.value?'Naam':this.value;" value="Naam"  /></td>

dit bv weer wel

Code:
 <td><input type="text" name="YMP1" placeholder="Naam" /></td>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan