gpt4 book ai didi

javascript - onsubmit 方法不会停止提交

转载 作者:太空狗 更新时间:2023-10-29 13:21:31 26 4
gpt4 key购买 nike

我的 onsubmit 不工作。我的想法是放置一些必填字段,为了实现这一点,我在调用 JavaScript 函数的 HTML 表单中使用 onsubmit 方法。

当时的想法是,如果所有必填字段都已填写,javascript 函数将返回 true 并且它会转到页面 /control/Cadastro.php。否则,如果任何必填字段为空,它将返回 false 并且不会移动到页面 /control/Cadastro.php,停留在当前页面直到 true。

不幸的是,如果所有必填字段都没有填写,函数确实返回 false,正如预期的那样,但它仍然移动到页面 /control/Cadastro.php,即使如果不应该。

我要删掉一些代码来表达我的观点。

<!DOCTYPE html>
<html>
<head>
<script>
function ValidateRequiredFields()
{
var message = new String('\nCampos obrigatórios:\n');
var flag=new Boolean(1);
var x=document.forms["theForm"]["nr_processoCA"].value;
if (x==null || x==""){
message += '\nNº do processo\n';
flag = new Boolean(0);
}
if (flag == false){
alert(message);
}
return flag;
}
</script>
</head>
<body>
<form name="theForm" onsubmit="return ValidateRequiredFields()" method="post" action="../control/Cadastro.php">
Nº do Processo: <br>
<input type="text" name="nr_processoCA" class="input-xlarge">
<br>
<div class="row-fluid" style="text-align:center;">
<input type="submit" class="btn btn-primary btn-large" value="Gravar">
</div>
</form>
</body>
</html>

最佳答案

您应该在 onsubmit 函数中使用 preventDefault。我修改了你的代码:

function ValidateRequiredFields()
{
var message = new String('\nCampos obrigatórios:\n');
var flag=new Boolean(1);


var x=document.forms["theForm"]["nr_processoCA"].value;
if (x==null || x==""){
message += '\nNº do processo\n';
flag = new Boolean(0);
}

if (flag == false){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false; // for IE as dont support preventDefault;
}
alert(message);
}

return flag;
}

DEMO

关于javascript - onsubmit 方法不会停止提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12623244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com