onsubmit="function()" 不工作

onsubmit="function()" is not working

我想验证 Django 中动态添加的表单字段(存在于 templates/appname 中)。我在 javascript 的帮助下添加了这些字段(addInput.js - 存储在脚本标记中作为源提到的地方)它也有逻辑删除这些字段以及验证这些字段值。但是当我点击 send_invites 按钮时,当我 首先 希望它应该转到 validateEmail() 函数时,它会再次引导我到 app/register 如果一切正常很好然后它应该重定向到app/register。

    var counter = 1;
    var limit = 5;

    function addInput(divName) {

      if (counter == limit) {

        alert("You have reached the limit of adding " + counter + " Email Addresses");

      } else {

        var newdiv = document.createElement('div');
        newdiv.innerHTML = "<p id = 'remove" + counter + "'>Email Address " + (counter + 1) + " : " + "<input type = 'text' name ='myInputs[]'></p>";
        document.getElementById(divName).appendChild(newdiv);
        counter++;
        alert(counter + "add");
      }
    }

    function removeInput(divName) {

      if (counter == 1) {

        alert("You have reached the limit of removing Email Addresses");

      } else {
        counter--;
        var olddiv = document.getElementById("remove" + counter);
        alert(counter + "remove");
        olddiv.parentNode.removeChild(olddiv);

      }
    }

    function validateEmail(divName) {

      var emailFilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/;

      console.log("cmn");
      alert("cmn");
      for (i = 0; i < counter; i++) {

        var email = $("#remove" + i).val();

        alert(email);
        //      return true;

      }
      return true;

    }
<div id="page-wrapper">
  <div class="row">
    <div class="col-lg-12">
      <br>

      <h1 class="page-header">
        Send Invites
        </h1>

      <form method="POST" onsubmit="return validateEmail('dynamicInput')" action="/app/register/">
        <div id="dynamicInput">
          <p id='remove0'>Email Address 1 :
            <input type="text" name="myInputs[]">
          </p>

        </div>
        <br>
        <br>
        <input type="button" value="Add another Email Address" onClick="addInput('dynamicInput');">
        <input type="button" value="Remove Email Address Field " onClick="removeInput('dynamicInput');">

        <br>
        <br>
        <input type="submit" value="Send Invites">
        <input type='hidden' name='csrfmiddlewaretoken' value='xyz' />
      </form>

      <!-- /.col-lg-12 -->
    </div>
    <!-- /.row -->
  </div>
  <!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
</div>
<style>
  a.active {
    background-color: #eee;
  }
</style>

但是为什么这没有发生呢?其他两个 javascript 函数 addInput 和 removeInput 工作正常。只有 validateEmail 没有被调用,为此我什至调用了 alert 和 console.log 但没有显示任何内容。请帮忙。我是 javascript 的新手。

运行 代码,点击按钮,控制台出现如下错误。

Uncaught SyntaxError: Invalid regular expression: /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/: Unterminated group

查看代码你有一个额外的(

/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,4})+$/;
                    ^

所以您要么缺少结尾 ),要么有多余的 (。我的猜测是您在 + 之前缺少 )。看看你在哪里找到了 reg exp,看看它应该是什么。