我想在不使用任何验证插件的情况下验证元素。首先,我定义了:
<input type='number' required="required" id='amt_elmt' name='amt_elmt' />
但我仍然可以在此控件中键入任何文本(我希望只能在其中键入数字);它也接受空白值。
可能需要哪些其他代码?
答案 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"
此链接证明非常有用。 这可能对其他人有帮助,因此可以单独回答我自己的问题。