html/javascript 表单提交时未调用 onsubmit 事件以验证表单
html/javascript onsubmit event not called on form submit to validate form
我想对 html 和 javascript 中的表单进行非常基本的验证。
我希望在单击提交按钮时检查文本字段,如果检查有效则执行表单的操作,否则什么都不发生。
但是由于某些原因,表单的 onsubmit 事件似乎根本没有被触发。
原因之一可能是提交按钮开始时处于禁用状态,但在 recaptcha 完成后由 recaptcha 回调函数启用。我该如何解决这个问题?
这是我的代码(我已将其简化到最低限度以进行测试,但没有任何反应,该函数未被调用,因为 window 警报未弹出:
<script type="text/javascript">
function capcb() {
document.getElementById("cap_sub").disabled = false;
};
</script>
<script type="text/javascript">
function check() {
window.alert("checking");
return false;
}
</script>
[...]
<form action="submitpage.php" method="post" onsubmit="return check()">
<fieldset>
<input type="text" name="Email" id="email" maxlength="120" class="input" /></p>
</fieldset>
<div align="center" class="g-recaptcha" data-sitekey="masked" data-size="compact" data-callback="capcb"></div>
<input type="submit" id="cap_sub" value="Submit!" class="submit"/>
</form>
期待您的建议
!
可能是因为你在函数 capcb() 的末尾有一个分号?
因为我试过你的代码和它的工作。
<script type="text/javascript">
function capcb() {
document.getElementById("cap_sub").disabled = false;
}
</script>
非常抱歉。我真的花了 3 个小时才决定在这里问。我终于意识到我的 check() 函数中有一个愚蠢的语法错误 - 完整的错误,而不是我发布的错误,它使 call() 函数未定义。修复它并且它有效......我是如此习惯了在执行之前编译代码,作为志愿者继承了这个旧网站来维护对于我这样的cobol编码器来说是一场噩梦:)
如果我浪费了任何人的时间,我真的很抱歉!
我想对 html 和 javascript 中的表单进行非常基本的验证。
我希望在单击提交按钮时检查文本字段,如果检查有效则执行表单的操作,否则什么都不发生。
但是由于某些原因,表单的 onsubmit 事件似乎根本没有被触发。
原因之一可能是提交按钮开始时处于禁用状态,但在 recaptcha 完成后由 recaptcha 回调函数启用。我该如何解决这个问题?
这是我的代码(我已将其简化到最低限度以进行测试,但没有任何反应,该函数未被调用,因为 window 警报未弹出:
<script type="text/javascript">
function capcb() {
document.getElementById("cap_sub").disabled = false;
};
</script>
<script type="text/javascript">
function check() {
window.alert("checking");
return false;
}
</script>
[...]
<form action="submitpage.php" method="post" onsubmit="return check()">
<fieldset>
<input type="text" name="Email" id="email" maxlength="120" class="input" /></p>
</fieldset>
<div align="center" class="g-recaptcha" data-sitekey="masked" data-size="compact" data-callback="capcb"></div>
<input type="submit" id="cap_sub" value="Submit!" class="submit"/>
</form>
期待您的建议 !
可能是因为你在函数 capcb() 的末尾有一个分号? 因为我试过你的代码和它的工作。
<script type="text/javascript">
function capcb() {
document.getElementById("cap_sub").disabled = false;
}
</script>
非常抱歉。我真的花了 3 个小时才决定在这里问。我终于意识到我的 check() 函数中有一个愚蠢的语法错误 - 完整的错误,而不是我发布的错误,它使 call() 函数未定义。修复它并且它有效......我是如此习惯了在执行之前编译代码,作为志愿者继承了这个旧网站来维护对于我这样的cobol编码器来说是一场噩梦:)
如果我浪费了任何人的时间,我真的很抱歉!