【问题标题】:Javascript cookie not working on form submitJavascript cookie不适用于表单提交
【发布时间】:2010-03-26 19:51:51
【问题描述】:

我有这样的表格:

<form id="loginCompact" action="https://externalsite..." name="sportsbook" method="post" onsubmit="createCookie('BRLOG', document.sportsbook.username.value, 1)">
    <input type="text" name="username" class="loginUsername" />
    ...other fields...
</form>

这是被调用的 Javascript 函数:

<script type="text/javascript">
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/; domain='mydomain.com'";
}
</script>

但是,提交表单时没有设置 cookie。当附加到按钮的onclick 处理程序时,它工作正常,但在onsubmit 上却没有。有什么想法吗?

【问题讨论】:

  • 按钮长什么样?它是

标签: javascript forms cookies onsubmit


【解决方案1】:

检查以确保 onsubmit 拼写正确(可能是 onSubmit?)。

通过发出警报而不是调用您的函数来简化

onsubmit="alert('test')"

在您的函数顶部放置一个警报,以查看它是否被调用,并且由于某些更复杂的原因没有设置 cookie。

如果它被调用,请检查以确保您依赖的所有变量都是正确的,使用警报或(更好)类似 firebug 的东西。

【讨论】:

  • 感谢您的提示,添加警报帮助我找到了实际问题所在。顺便说一句,所有 HTML 属性都不区分大小写,因此 onsubmitonSubmit 完全相同。事实上,对于 XHTML,您需要前者。
【解决方案2】:

我想通了——我需要在域名前面加上句号,并去掉引号:

domain=.mydomain.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 2012-10-27
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多