10

私はかなり新しいです。ユーザーにIDを尋ねるWebページを作成しています。必須フィールドにして、数字のみを許可したい。正しい方向に導いていただければ幸いです。これは私がこれまでに持っているものです。

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

3 に答える 3

38

JS またはサーバー上でより厳しい検証を取得することがおそらく提案されていますが、HTML5はpattern 属性を介してこれをサポートしています。

<input type= "text" name= "name" pattern= "[0-9]"  title= "Title"/>
于 2012-09-21T15:58:37.080 に答える
13

もちろん、クライアント側(javascript)の検証に完全に依存することはできませんが、それを完全に回避する理由にはなりません。それがあってもなくても、とにかくサーバー側の検証を行う必要があります (クライアントはjavascript を無効にできるため)。JavaScript 以外のソリューションの制約により、それが残っているだけです。

そのため、送信後、フィールド値がサーバー側の検証に合格しない場合、クライアントは、要求された値の形式を指定する追加のエラー メッセージとともに、まったく同じページに到達する必要があります。また、ツールチップのヒント (属性)などとして、事前に値の形式情報を提供する必要があります。title

HTML 4 / XHTML には、クライアント側の受動的な検証メカニズムが存在しないことは間違いありません。

一方、HTML 5では、次の2 つのオプションがあります。

  • タイプの入力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" />
    

    – これにより、フォーマットを完全に制御できます (正規表現で指定できるものは何でも)
    – 視覚的な違いや拡張はありません

ただし、ここではまだブラウザの機能に依存しているため、いずれの場合もサーバー側の検証を行ってください。

于 2012-09-21T15:38:43.707 に答える