2016-09-20 67 views
0

我有一個HTML輸入控制如下:動態添加圖案和title屬性輸入控制

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

體上的onload我增加了圖案和title屬性到該輸入控制

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(」'is is abrupt。can you add the entire line in here? –

+0

我編輯了我的問題以糾正第一行。 –

回答

0

我想通了這個問題。您正在從JavaScript傳遞模式值,因此它會轉義您需要在HTML中生成的所有符號。目前您的HTML生成pattern="d{2}-(?:d{4}-){3}d{1}"這是不正確的。因此,您需要在現有的\旁邊提供另一個轉義字符,這將導致翻番\\,所以您使用HTML生成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 

休息一切都很好。讓我知道如果這工作。