只允许输入Tage中的数字没有Javascript
我相当新。我正在创建一个要求用户输入其ID的网页。我希望它是必填字段,只允许数字。我很感激你是否能带领我走向正确的方向。这是迄今为止我所拥有的。只允许输入Tage中的数字没有Javascript
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Search</title>
</head>
<body>
<div>
<table align="center">
<tr>
<td class="label">
Enter ID:
</td>
<td>
<input type="text" name="UserId" id="UserId" />
</td>
</tr>
</table>
</div>
</body>
</html>
虽然可能会建议通过JS或服务器上的HTML5 does support this通过模式属性进行较重的验证。
<input type= "text" name= "name" pattern= "[0-9]" title= "Title"/>
刚刚试过这个无济于事:(你有可能在这里偷看一下吗?http://stackoverflow.com/questions/17999067/how-to-force-only-numbers-in-a-input-without-javascript –
@Davo这是一个HTML5属性,所以在没有一些polyfill的情况下,它不适用于较老的IE。你可以在这里查看支持:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/输入 – Brian
@Brain,我很抱歉,我误解了你的答案,它以你描述的方式工作,我认为它应该工作,当你点击键盘按钮,这不是数字,它只是不会输入任何东西(比如返回在js中为false),所以,它没有这样工作,但它不是你写的。谢谢。PS我删除了我的评论:) – dav
当然,你不能完全依靠客户端(JavaScript)的验证,但是这不是一个理由,以避免它彻底。无论有没有它,无论如何你必须做服务器端验证(因为客户端可以禁用javascript)。由于您的非JavaScript解决方案约束,这就是您所剩下的。
所以,一个提交后,如果该字段的值不通过服务器端验证,客户端应该结束了非常同一页上,额外错误消息指定请求值格式 。您还应在之前提供价值格式信息,例如作为工具提示提示(title
属性)。
HTML 4/XHTML中肯定没有被动的客户端验证机制。
在另一方面,在HTML 5有两个选项:
-
number
类型的输入:<input type="number" min="xxx" max="yyy" title="Format: 3 digits" />
–仅验证范围–如果用户输入了一个非编号空值已提交
–场视觉与递增/递减控制(依赖于浏览器)增强 -
的
pattern
属性:<input type="text" pattern="[0-9]{3}" title="Format: 3 digits" /> <input type="text" pattern="\d{3}" title="Format: 3 digits" />
–这给你一个完整的contorl在格式(您可以通过regular expression指定的任何东西)
–没有视觉差异/增强
但在这里,你仍然依靠浏览器功能,所以在任何情况下都要进行服务器端验证。
后与+试试这个[0-9]:
input type="text" pattern="[0-9]+" title="number only"
关的题目是:没有JavaScript!任何具体原因?我很想看到解决方案,虽然... – Vishal
没有理由。我在网上看,它只给了我与JavaScript的解决方案。在我看来,它更简单,如果我只是在HTML中做到这一点。 – Yusuf