小编Jim*_*ine的帖子

在表单中使用setCustomValidity需要两次点击onsubmit

我工作的形式,利用了HTML5表单验证属性对required各种textradio按钮领域.表单还有两组复选框,其中必须至少选中一个复选框.

为了保持用户的错误反馈一致,我使用该setCustomValidity方法在未选中复选框时抛出本机错误气泡.这一切都正常,但是,提交表单时使用错误反馈存在问题,并且onsubmit事件用于捕获未选中的复选框.当onclick事件绑定到提交按钮时,不会出现此问题,但我知道最好使用它onsubmit.

Onclick测试用例(点击提交按钮,第一次出现错误气泡!) http://jsfiddle.net/Jimadine/bZe5e/

提交测试用例(点击提交按钮 - 第二次点击后出现错误气泡) http://jsfiddle.net/Jimadine/2vLszqac/

此外,在我对onsubmit案例的测试中,Firefox在第一次点击提交按钮后突出显示未选中的复选框; 这通过复选框周围的红色光晕表示.然后在第二次单击后显示错误气泡.在其他现代浏览器中,第一次单击不会显示屏幕上指示复选框未选中; 我认为这就是在这些浏览器中实现HTML5验证的UX方面以及Firefox选择稍微不同的方式.

我的问题是为什么onsubmit测试用例需要两次点击,什么是纠正这种情况的合适方法,所以它的行为类似于onclick测试用例?我猜它与验证后触发的提交事件有关,但我不确定如何更正我的代码.

javascript forms checkbox html5

8
推荐指数
1
解决办法
3098
查看次数

Google Apps 脚本:检查请求的引用 URL(独立网络应用程序)

我想对(独立、匿名)Google Apps 脚本的引用网址进行检查,如果引用网址是两个已知的“良好”网址之一,则采取一些操作。

\n\n

有没有办法做到这一点?到目前为止,我想出的最好的方法涉及客户端代码,不幸的是document.referrer总是以 开头https://script.google.com,而不是带有 Google Apps 脚本链接的页面地址:

\n\n

代码.gs

\n\n
function doGet() {\n  var t = HtmlService.createTemplateFromFile(\'index\');\n  t.heading = "My heading"\n  return t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)\n}\n\nfunction validReferrer(ref) {\n  Logger.log("Referrer is: "+ref)\n  if (ref.indexOf(\'my-good-url.com\') > - 1 ) {\n    return true\n}\nelse \n  return false\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

索引.html

\n\n
<div>\n<script>\n  function onSuccess(a) {\n  alert(a);\n  }\n  // referrer always begins https://script.google.com\n  var ref = document.referrer || "doesn\'t have a referrer"; \n  google.script.run\n  .withSuccessHandler(onSuccess)\n  .validReferrer(ref)\n</script>\n\n<h1><?= heading ?></h1>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

理想情况下,我想纯粹在服务器端运行检查。如本页所述“出于安全原因,内容服务返回的内容不会从 …

google-apps-script google-apps-for-education

5
推荐指数
0
解决办法
2248
查看次数