【问题标题】:HTML Form onSubmit not calling the javascript scriptHTML Form onSubmit 不调用 javascript 脚本
【发布时间】:2014-01-07 16:24:40
【问题描述】:

我的表格如下:

<form id='_authForm' action='targetURL' method='POST' onsubmit='return setCookie();'>
</form>
<script>
      function setCookie()
      {
        document.cookie="cookiefortest=test"; path="/";return false;
      }
      document.forms['_authForm'].submit();
</script>

我在提交时遇到了一个问题,javascript "setCookie();"方法没有被调用。 有人知道我该怎么做吗?

很遗憾,我无法在 targetURL 中使用 setCookie javascript 函数。

非常感谢您的帮助。

【问题讨论】:

  • 在表单上调用 submit() 不会触发 onsubmit 事件

标签: javascript html http-headers url-redirection


【解决方案1】:
  1. 在由" 字符分隔的字符串文字中,您有未转义的" 字符。如果要运行setCookie,它会在那里抛出异常。 cookie 语法不使用引号字符。
  2. 当使用submit 方法提交表单时,不会触发提交事件。改为手动运行该函数。

这样的:

  function setCookie()
  {
    document.cookie="cookiefortest=test; path=/";
    return false;
  }
  setCookie();
  document.forms['_authForm'].submit();

【讨论】:

  • 感谢您的帮助,但由于某种原因,它不允许您在 authForm 提交之前运行“setCookie()”函数。例如,我在 Safari 中进行了测试。不明白为什么。
  • “不允许”是什么意思?当你尝试时会发生什么?如果setCookie() 失败,代码将永远无法到达submit()
  • 我的意思是它没有运行,是的,我将返回值更改为 true。
  • 那么会发生什么? setCookie(); 不运行,但 document.forms['_authForm'].submit(); 运行?控制台上没有错误?那是不可能的。 (setCookie() 的返回值无关紧要,它不用于任何事情)。
  • 不,它不调用setCookie(); 也不提交表单。并且 Safari,片段编辑器不会显示错误...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 2020-06-24
  • 2018-10-25
相关资源
最近更新 更多