javascript - 使用 jQuery 提交按钮在 IE9 和 FF9 中不起作用

标签 javascript jquery html css cross-browser

此提交按钮在 Safari 和 Chrome 中都有效,但在 IE9 或 FF9 中无效。

提交按钮 -

 <img type="submit" src="lib/send_feedback.jpg" border="0" class="feedback-submit-img" onClick="javascript: validate(); return false;"/>

相关 jQuery -

// Submit form to next page
function submitForm() {
//   document.forms["feedbackform"].submit();
    document.feedbackform.submit();
}
// Submit form and validate email using RFC 2822 standard
function validateEmail(email) { 
    // Modified version original from: http://stackoverflow.com/a/46181/11236
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}
// Return true if email field is left unchanged
function originalText(email){
    var defaultMsg;
    defaultMsg = "Enter your email address (optional)";
    if(defaultMsg == email){
        return true;    
    }
    return false;
}
// Verify or decline with error message
function validate(){
    $("#result").text("");
    var email = $("#email").val();
    if ((validateEmail(email)) || originalText(email)) {
        w.value = screen.width;
        h.value = screen.height;
        submitForm();
    } else {
        $("#result").text(email + " is not a valid email.");
        $("#result").css("color", "red");
    }
    return false;
}
$("form").bind("submit", validate);

还有当我将提交按钮更改为更基本以确保它提交 w 和 h 应该更新的隐藏字段未填写时的值(value)。

Here is the entire codethe CSS

最佳答案

type不是 img 的有效属性标签:https://developer.mozilla.org/En/HTML/Element/Img

相反,我认为你想要一个 <input type="image" />标签:https://developer.mozilla.org/en/HTML/Element/Input .

<img type="submit" />对我也不起作用,但使用 <input type="image" />做了:http://jsfiddle.net/HXrNb/1/

然后您可以只绑定(bind) validate()功能到submit表单事件:

$('form').on('submit', function () {
    ...
    if ((validateEmail(email)) || originalText(email)) {
        ...
        return true;
    } else {
        ...
        return false;
    }
});

关于javascript - 使用 jQuery 提交按钮在 IE9 和 FF9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038137/

相关文章:

php - 直接从 .js 或通过 .php 加载 javascript 源代码

javascript - 单击时如何将特定的 div 滚动到 iframe 的顶部?

jquery - java-blueimp jquery文件上传List<FileItem>为空?

html - 使用 Flexbox 时垂直对齐输入

html - div 中的图像在图像下方有额外的空间

javascript - 如何等待 mongoose .exec 函数完成?

javascript - lightgallery.js slider 中的目标图像

javascript - 用于页面的灯箱 javascript/flash

Javascript HTML 字符串 - 注入(inject)文档

html - 如果父级有带有 CSS 的子级,则将样式应用于父级