只允许输入标签号没有JavaScript(Only allow Numbers in input T

2019-07-31 18:51发布

我是相当新。 我创建一个网页需要询问他们的ID的用户。 我想这是一个必填字段,只允许数字。 我很欣赏,如果你领我在正确的方向。 这是我到目前为止所。

<%@ 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>

Answer 1:

虽然它可能建议获得通过JS或服务器上的一些较重的验证,HTML5 不支持此通过pattern属性。

<input type= "text" name= "name" pattern= "[0-9]"  title= "Title"/>


Answer 2:

与+试试这个后[0-9]:

input type="text" pattern="[0-9]+" title="number only"


Answer 3:

当然,你不能完全依赖于客户端 (JavaScript) 的验证 ,但是这不是一个理由,以避免它彻底。 不管有没有它,你必须做服务器端验证呢(因为客户端可以禁用javascript)。 而这仅仅是你面对的问题,因为你的非JavaScript的解决方案的约束。

所以,经过提交,如果该字段的值不通过服务器端验证 ,客户端应该结束了非常同一页上,与其他错误消息,其指定请求的值格式 。 你也应该提供的价值格式信息beforehands,例如作为工具提示提示( 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在格式(什么,你可以通过指定正则表达式
    - 无视觉差异/增强

但在这里,你仍然依赖于浏览器的功能 ,所以在这两种情况下做一个服务器端验证。



文章来源: Only allow Numbers in input Tag without Javascript