我真的想对使用Google Apps HtmlService提供的一些简单表单使用原生html5验证。
<form><input type="text" pattern="[0-9]{6}" /><input type="submit" value="try it" /></form>
在jsfiddle中,表单按预期工作:不匹配六位数的输入会产生特定于浏览器的验证提示。但是,使用HtmlService从Google Apps提供的完全相同的代码:
function doGet() {
return HtmlService.createHtmlOutput('<form><input type="text" pattern="[0-9]{6}" /><input type="submit" value="try it" /></form>');
}
导致表单正确显示,但未对输入进行验证。它可以进行测试here。我也尝试使用脚本设置pattern属性;这也失败了。
每种情况下使用的浏览器都是相同的,jsfiddle上的肯定结果证明浏览器正确支持模式属性。
任何帮助将不胜感激!
答案 0 :(得分:2)
你一直是Caja'd。来自HTML Service Restrictions Doc
保护用户免受恶意HTML或JavaScript,Apps的侵害 脚本依赖于Caja Compiler来清理和沙箱 适用于Google文档的HTML服务网络应用或自定义用户界面, 表格和表格。
当您查看Web应用程序的浏览器源时,Caja编译器会将表单字段转换为:
<input type="text" data-caja-pattern="[0-9]{6}">
data-caja
前缀阻止浏览器检测到模式。
根据this SO response HTML5支持已添加到Caja中,因此值得filing a bug report