Man kan f.eks. reagere på onkeydown og kalde en handler som sorterer de anslag fra som ikke falder indenfor de regler du sætter op (event.returnValue = false for dem der ikke skal medtages, såvidt jeg husker).
Du skal nok også filtrere på andre events (så som onpaste), da der kan komme data i feltet via andre metoder end tastatur...
og mit fieldvalidate-script ser således ud: // ============================================================ // Sørger for at indholdet i et felt er numerisk. // Feltet skal være af klassen floatinput eller numinput. // floatinput tillader 0 eller 1 komma og tal. // numinput tillader kun tal og altså ikke komma. // ============================================================ function ensureNumeric() { function isAllowed(ord, allows) { var bRes = false; bRes = allows.indexOf("," + ord + ",") > -1; return bRes; }
var elm = event.srcElement; var ord = event.keyCode; var allowed = ",8,9,35,36,37,38,39,40,46,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,"; if(elm.className == "floatinput" && elm.value.indexOf(",") < 0) allowed += "110,188,";
// ============================================================ // Formatterer indholdet af et numerisk felt, så det sikres at // tal indtastet er valide heltal eller kommatal. // Hvis der på input-feltet er defineret en attribut som hedder // "minvalue" kan feltets værdi ikke være mindre end denne. // ============================================================ function formatNumeric() { var elm = event.srcElement;
if(elm) { var minval = elm.getAttribute("minvalue") + ""; var v = parseFloat("0" + elm.value.replace(",",".")); if(minval != "") if(v < minval) v = parseFloat(minval); elm.value = v.toString().replace(".",","); } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.