【问题标题】:Form doesn't work in Safari and Chrome, but does work in ie and firefox表单在 Safari 和 Chrome 中不起作用,但在 ie 和 firefox 中起作用
【发布时间】:2011-05-03 08:29:16
【问题描述】:

这是我在这个论坛上的第一篇文章。嗨!

我有问题。我为神秘购物者创建了一个在线工具,用于编码和验证他们在整个欧洲的访问。到目前为止,我基于 php 和 mysql 数据自动生成的表单效果很好。我有一个反复出现的问题。这些表单在 ie(所有版本)和 firefox 中效果很好,但在 chrome 或 safari 中效果不佳。

我在表单上使用了 jquery 验证,所以可能存在问题。

问题: 当我在 Safari 中工作时,如果我点击提交表单,什么都没有发生? 当我在 Chrome 中工作时,jquery 验证效果很好,但是表单没有提交?!?

我的表单开始和结束标签:

<form action="encodage_finish.php" method="post" id="encodageForm">
<input name="submit" type="submit" value="<?php echo $translation["SubBodyFormButton"]; ?>" id="verzendknop" /></form>

我的 jquery 代码:

$("#encodageForm").validate({

    submitHandler: function(form) {
        $('div.error').toggle('normal');
        dateISO: true;
        form.submit();
    }
});

【问题讨论】:

    标签: php jquery google-chrome safari


    【解决方案1】:

    我不确定这是什么:

    dateISO: true;
    

    它看起来像是在复制/粘贴时插入了一个验证规则,只需将其删除,因为它是无效的脚本:

    $("#encodageForm").validate({
      submitHandler: function(form) {
        $('div.error').toggle('normal');
        form.submit();
      }
    });
    

    目前由于dateISO: true;,当在提交处理程序中读取该行时,不工作的浏览器会爆炸,这取决于浏览器的工作方式,有些在最初加载脚本时会爆炸,有些在执行时会爆炸@ 987654324@第一次。

    【讨论】:

    • 嗨,尼克,dateISO 用于我的日期字段。 DateISO 是日期的欧洲表示法。该值检查采用欧洲格式。这是在错误的地方吗?
    • 嗨尼克,我已经注释掉了那行,它对我的​​表单没有任何改变,所以它一直被注释掉。但是不使用这行代码提交测试,在safari和chrome中还是不行。
    • @Jens - 那行代码应该在rules,例如$("#encodageForm").validate({ rules { dateInputNAME: { dateISO: true } }, submitHandler: ....
    • @Jens - 检查您的控制台是否有其他错误,这无疑会引发错误,如果您不知道如何在 Chrome 中检查控制台,请始终先检查它们:Ctrl+Shift+I,单击控制台选项卡。
    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多