У меня есть код:Как сделать JQuery код выполняется в порядке
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('form').submit(function(e) {
if (!$('.text').val()) {
e.preventDefault();
console.log('error');
return false;
}
});
});
</script>
</head>
<body>
<form>
<input type="text" class="text" value="" />
<input type="submit" value="Send" />
</form>
<script type="text/javascript">
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
url: 'send.php',
type: 'post',
success: function() {
console.log('done');
}
});
});
</script>
</body>
</html>
Я вставки в JavaScript в <head>
и конец <body>
.
Проблема заключается в том, что когда я нажимаю кнопку отправки, кажется, что браузер выполняет оба моих кода одновременно.
Я не хочу комбинировать оба кода в одном, я просто хочу выполнить код javascript на <head>
, остановился, если произошла ошибка, иначе он выполнил бы код в <body>
.
Если вы просто взгляните на мою проблему и поделитесь своей наукой, я был бы очень благодарен. Благодаря!
Один в теле всегда будет первым в этом случае, потому что он сначала связан, а просто FYI. –
Чтобы остановить все будущие обработчики событий для текущего события, вы хотите остановитьImmediatePropagation, а также preventDefault. –
Почему вы не комбинируете оба сценария? –