1

私はフォームを持っているので、ユーザーが編集ボタンをクリックすると、テキストはinput type = "email"に置き換えられ、指定された電子メールのパターンにも一致します

               <label for="name-c">Email-Id:</label>
             <label class="email">abc@xyz.com</label>
                 <button class="edit">edit</button>

Jqueryコード:

$('.edit').click(function () {
  var email=$('.email').text();
   $('.email').replaceWith(function () {
     var pattern = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/;
     return '<input type="email" id="email" name="email" title="Enter email like abc@xyz.com" required placeholder="abc@xyz.com"   pattern="' + pattern + '"'+'class="ui-input-text ui-body-c ui-corner-all ui-shadow-inset"/>'});
     $('#email').val(email);});

エラーメッセージが表示されますが、正しいパターンを入力してください。しかし、単純に配置しinput type="email"てからパターンを続けてマッチングする場合、そのマッチングは完全に混乱します。コードが正しくない場合。

4

1 に答える 1

0

柄はいらないと思います。を指定した場合type="email"、値を制御するのはナビゲーターです。[here][1] をデフォルトのパラメーターでテストすると、chrome と firefox で動作します。しかし、「.*」のようなパターンを追加すると、チェックが失敗するのは不思議です。

W3C によって指定された仕様では、属性パターンを許可していますが、値までスクロールすると、値は指定されたでチェックされます。

したがって、チェックが暗黙的であるパターンを追加する必要はありません。

編集 :

この正規表現 ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?: .[a-zA-Z0-9-]+)+$ w3c 仕様で定義されている正規表現を使用し、最後の * を + に変更します。

編集 :

最後に、ここでjqueryを使用して入力を追加すると、バックスラッシュが欠落しているという間違いが見つかりましたhttp://jsfiddle.net/KaBut/6/

于 2012-08-14T08:23:07.230 に答える