Я думаю, что вам, возможно, придется подумать о другом способе решения этой проблемы.Я не думаю, что это возможно, и примеры jQuery для этого (http://api.jquery.com/jQuery.post/), кажется, согласны. Функция асинхронная - это обратный вызов, и поэтому она выполняется всякий раз, когда возвращается результат (предполагая, что это так)Я не пробовал, но я видел кое-что, что вы могли бы попробовать:
Попробуйте поставить это перед вызовом $ .post:
$.ajaxSetup({async:false});
Будете ли вы открыты для другогосделать это? Я не знаю вашей ситуации, так что это может или не может работать:
<script type="text/javascript">
$(document).ready( function() {
var isValid = false;
var postValid = false;
function is_valid( value )
{
if (value == "Iamgood") isValid = true;
$.post( 'validatefield.php', 'fieldvalue=' + value, function (data) {
postValid = true;
$('#formtovalidate').submit();
});
}
$('#formtovalidate').bind( 'submit', function() {
if (!isValid || !postValid) {
is_valid( $('#field').val() );
return false;
} else return true;
});
});
</script>
<form id="formtovalidate" action="yes.php">
<input value="Iamgood" id="field" name="field"/>
<input type="submit" id="sendform" value="Send" />
</form>