我有一个控件,它是一个日期选择器,它使用带有正则表达式的 HTML5 的“模式”属性进行验证。它工作正常。
<input type='text' class='date-pick' name='breakEndIE' size='8' placeholder='01-03-2011' style='max-width:100px' pattern='^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])- ((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)-(0[13456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])-02-((19|[2-9]\d)\d{2}))|(29-02-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$' readonly='readonly' required />
但是,当我使用 document.write() 将其放入脚本中时,它会停止工作。(Pattern 总是认为日期的格式有错误)
<script>
var ifFFOCHR = false;
if (navigator.appVersion.indexOf("MSIE") > -1) ifFFOCHR = false;
else if (navigator.appVersion.indexOf("Chrome") > -1) ifFFOCHR = true;
else if (navigator.appVersion.indexOf("Safari") > -1) ifFFOCHR = false;
else ifFFOCHR = true;
if (ifFFOCHR == true)
{
//FIREFOX/CHROME/OPERA CODE HERE
document.write("<input type='text' class='date-pick' name='breakEnd' size='8' placeholder='01-03-2011' style='max-width:100px' pattern='^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])-((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)-(0[13456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])-02-((19|[2-9]\d)\d{2}))|(29-02-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$' required />");
}
else
{
//IE/SAFARI CODE HERE
document.write("<input type='text' class='date-pick' name='breakEndIE' size='8' placeholder='01-03-2011' style='max-width:100px' pattern='^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])- ((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)-(0[13456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])-02-((19|[2-9]\d)\d{2}))|(29-02-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$' readonly='readonly' required />");
}
</script>
我不知道为什么会这样。我曾多次尝试将其复制并粘贴到 document.write() 中。它在它外面工作,但不在里面。我试过让朋友做这件事。我们在另一个脚本中进行了尝试,它运行良好,只是在这个脚本中它被破坏了。
请帮忙。
仅供参考:该脚本是为了在 IE 和 Safari 中显示某些代码,而在 Firefox、Opera 和 Chrome 中显示不同的代码。