此提交按钮在 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)。
最佳答案
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/