处理jsp中的数字格式和精度异常

时间:2013-06-10 10:35:07

标签: javascript jsp format alert

以下是添加新基金的代码min_holdings和nav是int值,其他所有是varchar和text字段。在输入这些字段时,我想确保用户输入正确的格式,如int in int int中没有char或string .. 如果是的话应该来一个警告框..怎么做??? !!!

 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Insert title here</title>
 </head>
 <body>
 <form method="post" action="AddMF">
 <center>
 <table>
 <tr>    
 <td>Fund Code</td><td><input type="text" name="mf_code"></td>
 </tr>
 <tr>
 <td>Name</td><td><input type="text" name="mf_name"></td>
 </tr>
 <tr>
 <td>Fund Type</td><td><input type="text" name="mf_type"></td>
 </tr>
 <tr>
 <td>Current NAV</td><td><input type="text" name="nav"></td>
 </tr>
 <tr>
 <td>Minimum Holdings</td><td><input type="text" name="mf_min_holdings"></td>
 </tr>
 <tr>
 <td>Description</td><td><input type="text" name="mf_description"></td>
 </tr>
 <tr>
 <td>Termd and Conditions</td><td> <input type="text" name="mf_TandC"></td>
 </tr>

 </table>

 <br>
 <input type="submit" value="submit">
 </center>
 </form>


 </body>
 </html>

2 个答案:

答案 0 :(得分:0)

您可以使用JQuery Validation插件.. 这将有所帮助:

http://jqueryvalidation.org/

答案 1 :(得分:0)

为您的表单提供ID,例如frmId

<form id='frmId' method='post' action='AddMF'>

然后,添加以下JS:

//assuming window.onload or something
document.getElementById('frmId').onsubmit = function(e)
{
    e = e || window.event;
    var inputs = this.elements,
    i, val;
    for (i=0;i<inputs.length;i++)
    {
        if (inputs[i].value.trim() == +(inputs[i].value.trim()) && inputs[i].value.trim().length > 0)
        {//trim value, continue
            inputs[i].value = inputs[i].value.trim();
            continue;
        }
        alert('Expected numeric input, saw: "' + inputs[i].value +'"');
        //stop submitting the form
        if (e.preventDefault)
        {
            e.preventDefault();
            e.stopPropagation();
        }
        e.returnValue = false;
        e.cancelBubble = true;
        return false;
    }
};

现在,上面的代码假设所有输入都应该是数字。您可以通过使用类或甚至各种输入元素的ID /名称来指定您期望的输入类型 只是为了告诉你我正在检查输入的方式:

inputs[i].value.trim()//strip all trailing and leading spaces from input
  == +(inputs[i].value.trim())//loose comparison to the same value, coerced to a number

这相当于:

'1' == 1 or 'a' == 0

如果用户输入a,则等于false,如果输入为数字,则为真。如果没有输入,则比较等同于:

'' == 0

这是true,这就是为什么我添加了&& inputs[i].value.trim().length > 0,以确保输入值至少一个字符长。

如果要检查alfanumeric输入,可以使用这样的正则表达式:

inputs[i].value.test(/^[a-z]+$/i)//only chars from a to z, case insensitive

依旧等等......但是解释正则表达式并不是可以在这里轻松完成的事情,只需谷歌“正则表达式javascript”并学会爱他们......然后爱到也恨他们:)