Я хочу отправить форму тогда и только тогда, когда текстовое поле проверено... если нет, я хочу остановить форму и дать предупреждение
Сейчас я получаю предупреждение, если оно не проверено, но оно отправляет форму в любом виде
$(function() {
$("#button").click(function(){
if ($("#uploadTOS").is(":checked")) {
return true;
} else {
alert("Please agree to the TOS");
return false;
}
})
})
<form enctype="multipart/form-data" action="urlupload.php?do=verify" id="form" method="post" onsubmit="a=document.getElementById('form').style;a.display='none';b=document.getElementById('part2').style;b.display='inline';" style="display: inline;">
<div id="uploadform">
<input type="text" name="uploadfile" size="30" /><p>
<input type="submit" id="button" class="button" value="Upload" />
</div>
<div id="TOSDiv" style="display:none; z-index:60;">
<input id="uploadTOS" type="checkbox" name="tos" value="1" />
<span id="uploadTOSText">
I Agree to the <a href="tos.php" target="_blank">Terms of Service</a>
</span>
</div>
</form>
Используйте onclick javascript с этим:
function toscheck() {
if ($("#uploadTOS").is(":checked")) {
return true;
} else {
alert("Please agree to the TOS");
return false;
}
}
Изменить javascript на:
function submitcheck() {
if ($("#uploadTOS").is(":checked")) {
return true;
} else {
alert("Please agree to the TOS");
return false;
}
}
А затем добавьте onclick в кнопку отправки
<input type="submit" id="button" class="button" value="Upload" onclick="return submitcheck();" />
Я считаю, что возвращаемые значения устарели для более новых версий jQuery. Попробуйте event.preventDefault
вместо return false
.
Обратите внимание, что переменная event
будет просто первым аргументом вашего .click(function(event) {...})
jQuery .click(function(event) {...})
.