2012-01-27 75 views
1

此提交按钮在Safari和Chrome中都可以使用,但不能使用IE9或FF9。使用jQuery提交按钮不能在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 = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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假设更新没有填写。

Here is the entire code and the CSS

回答

3

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/

然后,您可以只validate()功能绑定到submit事件形式:

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

卫生署!就是这样,非常感谢你的协助。这个疏忽绝对是问题所在,我想Chrome和Safari正在纠正/补偿这个错误。再次感谢您的帮助。 – Eric 2012-01-27 18:34:18