html / javascript onsubmit事件未在表单上调用提交以验证表单

时间:2018-02-12 22:23:34

标签: javascript html forms validation recaptcha

我想在html和javascript中对表单进行非常基本的验证。

我希望在单击提交按钮时检查文本字段,如果检查有效则要执行表单的操作,否则不会发生任何事情。

出于某种原因,表单的onsubmit事件似乎根本没有被触发。

其中一个原因可能是提交按钮以禁用方式启动,但在完成recaptcha后由recaptcha回调函数启用。我该如何解决这个问题?

这是我的代码(我已经将它简化为最小化以进行测试,没有任何反应,因为窗口警报没有弹出,所以没有调用该函数:

<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>

向前推荐你的建议 !

2 个答案:

答案 0 :(得分:0)

也许是因为你在函数capcb()的末尾有一个分号? 因为我尝试了你的代码及其工作。

<script type="text/javascript">
   function capcb() {
       document.getElementById("cap_sub").disabled = false;
    }                                
</script>

答案 1 :(得分:0)

我很抱歉。我确实花了3个小时才决定问这里。我终于意识到我的check()函数中有一个愚蠢的语法错误 - 完整的那个,而不是我发布的,这使得call()函数未定义。修复它并且它有效...我是这样的用于在执行代码之前编译代码,继承这个旧网站作为志愿者维护是cobol编码器的噩梦我是:)

如果我浪费任何人的时间,我真的很抱歉!