使用正则表达式验证数据类型的javascript onkeypress

时间:2014-02-01 18:56:18

标签: javascript regex onkeypress

我正在尝试在文本框的onkeypress事件中使用函数validateDataType()。它适用于按钮的onclick事件,但如果我在onkeypress上执行该功能,它似乎无法识别代码。通过使用onkeypress事件,我希望提前警告用户它不是问题所需的数据类型。 我感谢任何意见,感谢你提前帮助。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Challenge Questions</title>

<link href="style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">

    /* <![CDATA[ */
    /* }]> */
    function validateDataType(answer) {

        if(answer.match(/^\d+$/)){
        alert("integer")}
        else if(answer.match(/^\d+\.\d+$/)){
        alert("float")}
        else{
        alert("string")
        }}

</script>

</head>

<body>


<div id="content-pane">



<a class="back">go back</a>
<div id="headline">Challenge Questions</div>
<br />
<br />
<br />
<br />
<form action="FormProcessor.html">
    <span id="subtitle">Please answer your security questions to reset your password.    </span>
    <br />
    <br />



           <input type="text" id="firstA" name='firstA' size="60" onkeypress="validateDataType(document.getElementById('firstA').value)" /></p>

           <p><input type="button" onclick="validateDataType(document.getElementById('firstA').value)" value="Reset Password" style="width:100px" /></p>
</form>
</div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

在附加值之前会触发

onkeypress事件,因此您应该将事件更改为onkeyup / onchange或延迟函数