即使有preventdefault
和returnvalue = false
,表单仍然会在IE中提交。 Chrome和Firefox中的一切都很好。我也试过event.stopPropagation()
。event.preventDefault? event.preventDefault():event.returnValue = false;不在IE8中工作
$('#form1').submit(function(event) {
var xxx = $('#xxx').val();
var yyy = $('#yyy').val();
var zzz = $('#zzz').val();
var uuu = $('#uuu').val();
if (zzz != '000000' && zzz != '') {
validate_xxxyyy(uuu, function(response) {
if (response === false) {
if (xxx == '') {
alert("XXX undefined!");
event.preventDefault ? event.preventDefault() : event.returnValue = false;
}
else if (yyy == '') {
alert("yyy Undefined!");
event.preventDefault ? event.preventDefault() : event.returnValue = false;
}
}
else {
return true;
}
});
}
else {
return true;
}
});
function validate_xxxyyy(uuu, callback) {
var data_string = 'uuu=' + uuu;
$.ajax({
url: 'ajax.php',
type:'POST',
data: data_string,
dataType: 'json',
cache: false,
async: false,
success: function(response){
callback(response);
}
});
}
你确实注意到'async:false'? – adeneo
没关系。无论如何,成功的功能是无可否认的。所以提交总会发生。 – Liam
你能否以某种方式指导我使代码工作? – mend