Hej! använd javascript och nyttja onkey/change... funktionerna Hejfältverifiering
Finns det något enkelt sätt att ex. göra så att ett formulärfält bara accepterar numeriska värden, eller bara bokstäver? Antar att man får göra en javascript-loop som checkar konstant eller nåt..? Någon som vet?Sv: fältverifiering
<input type="text" name="myfield" onchange="do_some_javascript_actions;" />Sv:fältverifiering
Det smidigaste är om du använder dig av reguljära uttryck.
Jag har skrivit ihop ett litet exempel, där alla inmatningsfält ändrar färg vid felaktig inmatning.
De reguljära uttrycken återfinns i attributet "pattern" i <input> taggen för respektive inmatningsfält.
<html>
<head>
<title></title>
<script language="javascript">
function validateForm() {
// Controls (input fields) to check.
var controls = new Array("letters", "digits");
// Flags.
var formOK = true;
var focus = true;
// Check all controls.
for(var i=0; i<controls.length; i++) {
// Get reference to control.
var control = document.getElementById(controls[i]);
// Validate pattern.
formOK &= validatePattern(control);
// Focus the first erroneous control.
if(!formOK && focus) {
document.getElementById(controls[i]).select();
focus = false;
}
}
// Return success value to form.
return formOK==1;
}
function validatePattern(control) {
// Get regular expression pattern.
var pattern = control.getAttribute("pattern");
// Check input data.
var ok = new RegExp(pattern, "g").test(control.value);
// Color field.
control.style.backgroundColor = ok ? "#FFFFFF" : "#FFCCCC";
return ok;
}
</script>
</head>
<body>
<form method="post" action="a_page.ext" onsubmit="javascript:return validateForm();">
Enbart bokstäver:<br>
<input type="text" id="letters" name="letters" pattern="^[a-zA-ZåäöÅÄÖ]+$">
<br>
Enbart siffror:<br>
<input type="text" id="digits" name="digits" pattern="^[0-9]+$">
<br>
<input type="submit">
</form>
</body>
</html>