2009-08-07 9 views
0
<form action="" method="post"> 
<div align="center"><legend>Add a Code</legend> 
<label for="code"></label> 
<input type="text" name="code" id="code" maxlength="10" /> 
<input type='button' 
onclick= 
      "isAlphanumeric(document.getElementById('code'),'Your Submission Contained Invalid Characters'); 
       isBadPhrase(document.getElementById('code'), 'Please Enter A Correct Friend Code!');"  
    value='Check Field' /> 

Post-Methode Keine Warnungen wie geplant geben?

function isAlphanumeric(elem, helperMsg){ 
var alphaExp = /^[0-9a-zA-Z]+$/; 
if(elem.value.match(alphaExp)){ 
    return true; 
}else{ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
} 

}

function isBadPhrase(elem,helperMsg){ 
var badPhrase=/EPW|ESW|\s/; 
if (elem.value.match(badPhrase)){ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
}else{ 
    return true; 
    } 

}

Was ist hier falsch?

Antwort

0

Sie geben nichts von Ihrem Handler zurück. Sie müssen einen Wert (true/false) vom Handler zurückgeben, insbesondere, wenn Sie den Standardwert anhalten möchten. Hinweis - Ich würde auch den Namen der "BadPhrase" -Methode in "GoodPhrase" ändern, so dass es dem Sinn des Rückgabewerts entspricht.

Skript:

function isAlphanumeric(elem, helperMsg){ 
    var alphaExp = /^[0-9a-zA-Z]+$/; 
    if(elem.value.match(alphaExp)){ 
     return true; 
    } else { 
     alert(helperMsg); 
     elem.focus(); 
     return false; 
    } 
} 

function isGoodPhrase(elem,helperMsg){ 
    var badPhrase=/EPW|ESW|\s/; 
    if (elem.value.match(badPhrase)){ 
     alert(helperMsg); 
     elem.focus(); 
     return false; 
    } else { 
     return true; 
    } 
} 

function checkInput(id) { 
    return isAlphanumeric(document.getElementById(id),'Your Submission Contained Invalid Characters') 
     && isGoodPhrase(document.getElementById(id), 'Please Enter A Correct Friend Code!'); 
} 

html:

<input type='button' onclick="return checkInput('code');" value='Check Field' /> 

EDIT:

Wenn Sie die Validierung auf Formular tun eintragen läuft unabhängig davon, wie das Formular abgeschickt wird. Sie können es als onsubmit-Handler im Formular-Tag hinzufügen, wie Sie es für den Klick-Handler der Schaltfläche getan haben. Die Schaltfläche sollte wahrscheinlich eine Übermittlungsschaltfläche sein, wenn sie die Formularübermittlung auslösen soll.

Hinweis: meine Vorliebe wäre, die Handler über Javascript und nicht im Tag hinzuzufügen, aber das ist außerhalb des Umfangs der Frage. Ich würde wahrscheinlich auch ein Framework anstelle von roher Javascript verwenden, aber das ist auch außerhalb des Bereichs.

+0

Was meinst du? Kannst du genauer sein? –

+0

Es hat funktioniert, bis ich den badPhrase Teil hinzugefügt habe ...? –

+0

Ist das korrekt? Es funktioniert nicht. Ich denke du verpasst etwas. Wenn ich es an meinen Editor anschließe, werden alle meine Farbcodes geändert und ich nehme an, dass das kaputt ist. –

Verwandte Themen