没有任何插件的HTML输入元素验证

时间:2011-11-29 13:52:08

标签: html html5

我想在不使用任何验证插件的情况下验证元素。首先,我定义了:

<input type='number' required="required" id='amt_elmt' name='amt_elmt' />

但我仍然可以在此控件中键入任何文本(我希望只能在其中键入数字);它也接受空白值。

可能需要哪些其他代码?

5 个答案:

答案 0 :(得分:1)

Number是HTML5输入类型。所有浏览器尚未正确支持此功能,在大多数浏览器中,您都可以输入任何内容。

如果您想在用户输入时阻止除数字之外的任何内容,则在按键时需要使用JavaScript。

如果您想在发布后验证是否只使用了数字,您可以使用JavaScript或PHP。

答案 1 :(得分:1)

正如其他人提到的那样,所有浏览器都不支持Forms 2.0或新的HTML5输入类型(see this link)。

我最近回答了another question处理HTML 5表单元素的问题。我的桌面浏览器(FF,Chrome,IE)或我的移动浏览器(FF,Android默认浏览器)都没有尝试验证我使用的是数字,还是将其限制为数字。

您最好的选择是使用jquery.validate等javascript客户端验证或任何其他数量的库来完成验证。

编辑:该链接指向Visual Studio附带的Microsoft验证库,但您可以从该网站下载它并且它运行良好。如果需要,我可以发布如何使用它的代码

编辑2: Codez http://jsfiddle.net/qxsS8/

答案 2 :(得分:0)

为要处理的事件添加Javascript事件处理程序(即onkydown,onkeyup,...)。在这些功能中,您可以访问输入的值并删除您不想要的字符。

答案 3 :(得分:0)

您可以使用标准HTML5表单验证。然后,为了支持旧浏览器,请使用此库:

https://github.com/ericelliott/h5Validate

这将使用JavaScript添加支持。

您需要添加到页面中的是以下代码:

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
<script src="jquery.h5validate.js"></script> // You will need to host this somewhere
<script>
    $(function () {
        $('form').h5Validate();
    });
</script>

它适用于: 桌面:IE 9,8,7,6,Chrome,Firefox,Safari和Opera。在Windows 7和Mac上测试过。 手机:iPhone,Android,Palm WebOS

答案 4 :(得分:-2)

最后我发现使用javascript(也许是jquery)非常灵活。 (没有依赖性,没有第三方错误,对于不懂插件逻辑的程序员来说很难解决。)

link to "javascript only form validation tutorial"

此链接证明非常有用。 这可能对其他人有帮助,因此可以单独回答我自己的问题。