2016-09-20 5 views
0

に属性を追加する:私は、パターンやタイトルを追加していボディのonloadに動的パターンやタイトル、次のように私は、HTMLの入力コントロールを持っている入力コントロール

<input type="text" value="<%= this.CustomerAcctNumber %>" name="CustomerAcctNumber" id="CustomerAcctNumber" maxlength="19" onkeyup="CustomerAcctNumberChange()" required > 

すると、この入力コントロールに

var CustomerAcctNumber = document.getElementById("CustomerAcctNumber"); 
CustomerAcctNumber.setAttribute("pattern","\d{2}-(?:\d{4}-){3}\d{1}"); 
CustomerAcctNumber.setAttribute("title","xx-xxxx-xxxx-xxxx-x"); 

属性このウェブページを有効なパターンで送信すると、エラーが発生します:

enter image description here

予想通り、次のよう

入力コントロールがレンダリングされました:

<input type="text" value="" name="CustomerAcctNumber" id="CustomerAcctNumber" maxlength="19" onkeyup="CustomerAcctNumberChange()" pattern="d{2}-(?:d{4}-){3}d{1}" title="xx-xxxx-xxxx-xxxx-x" required=""> 

任意の提案やコメントが理解されるであろう!

+0

は、あなたが望むようにHTMLで正しく表示されるパターンとタイトルですか? –

+0

最初の行 'var CustomerAcctNumber = document.getElementById(" ''突然です。ここにその行全体を追加できますか? –

+0

最初の行を修正する質問を編集しました –

答えて

0

私は問題を把握しました。 JavaScriptからパターン値を渡しているので、HTMLで生成する必要があるすべての\シンボルをエスケープします。現在、あなたはHTMLでpattern="d{2}-(?:d{4}-){3}d{1}"を生成していますが間違っています。したがって、既存の\のそれぞれの隣に別のエスケープ文字を入力する必要があります。\\となるので、pattern="\d{2}-(?:\d{4}-){3}\d{1}"が生成されます。あなたのJSの線は次のようになります:

CustomerAcctNumber.setAttribute("pattern","\\d{2}-(?:\\d{4}-){3}\\d{1}"); //renders to '\d{2}-(?:\d{4}-){3}\d{1}' in HTML 

すべてが正常です。これがうまくいけば教えてください。

関連する問題