English 中文(简体)
联系人窗体 IE8 wores - 无法停止提交表单
原标题:Contact form & IE8 woes - can t seem to stop the form submitting

在jQuery 中,我有一个使用.ajax () 方法提交的联系表,以便在不更新页面的情况下提交该表。除 IE 外,所有浏览器都使用该表。 IE 正在发作,并且坚持要刷新页面。

这是我的代码:

function appointmentform() {    
    $("#appointment-form").on("submit", function(e) {

        // serialize all input data
        var dataString = $(this).serialize();
        console.log(dataString);

        // if there are no inputs with errors
        if ($("input.required.error").length < 1) {

            // ajax call to mail.php script
            $.ajax({
                type: "POST",
                url: "http://www.thesalonleamingtonspa.com/mail",
                data: dataString,
                success: function() {
                    // success notice
                }
            });

        }

        // cancel form submit
        if (e.preventDefault) { 
            e.preventDefault(); 
        } else { 
            e.returnValue = false; 
        }
    });
}

我意识到e. teventionDefault () 对IE毫无意义, 但我认为 e. returnValue = freed 是相等的。 有人知道为什么它不适合我吗?

编辑:只有IE8才是问题的孩子。

最佳回答

真正的罪魁祸首是 IE8 & amp; connoole.log

IE8 不支持直接从框中写入 < code > connoole , 所以脚本一旦遇到 < code > conole 函数, 脚本就会停止运行。 在我代码中, < code > teventionDefault 是在 < code > conole 部分之后出现的, 所以它不会运行 。

解决方案: 保持开发者工具在 IE8 中打开, 允许您写入 后台

我在回答我自己的问题,因为其他答案没有百分之百正确,尽管它们很有帮助。 任何认为我未来问题的人都可能从听到我现在所描述的真正理由中受益。

问题回答

正在返回 false 应取消表格提交

取代

    if (e.preventDefault) { 
        e.preventDefault(); 
    } else { 
        e.returnValue = false; 
    }

使用使用

return false;

我意识到e. 预防() Dault () 对IE毫无意义

如果您不使用 jQuery 。 jQuery 制作了这个交叉浏览器, 那才是正确的 。

猜测 : 您是否使用 jQuery & lt; 1. 4?

JavaScript 提交事件不会在 Internet Explorer 中出现泡沫。 但是, 依赖提交事件授权的脚本将自 JJQuery 1. 4 开始在浏览器中持续工作, JavaScript 已经使事件行为正常化了 。

- http://api.jquery.com/submit/

如何使用 : 而不是使用提交文件, 只要使用按钮 :

// use this ~ buttons don t do anything unless explicitly told to
<input type="button">

// not this ~ the default behavior is to submit ~ which you don t want
<input type="submit">

您只需聆听点击按钮的点击, 然后就启动函数 。

我几年来都没有用过呈文按钮... 完全... 只是为了避免这个问题的发生

通常我聆听“ submit” 事件的方式是点击。 根据我的经验, 连IE都能处理点击事件 。

function doAjaxStuff {
    // do form validation
    // do ajax stuff
}
myButton.click(doAjaxStuff);




相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.