使用Google HtmlService投放时输入模式属性不起作用

时间:2014-03-08 11:16:33

标签: javascript html5 google-apps-script google-caja

我真的想对使用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上的肯定结果证明浏览器正确支持模式属性。

任何帮助将不胜感激!

1 个答案:

答案 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