【问题标题】:form.submit() not working in a EventListener functionform.submit() 在 EventListener 函数中不起作用
【发布时间】:2020-05-17 21:30:29
【问题描述】:

如果 .value 不相等,我将如何做到这一点,它会通过表单提交。我试过 form.submit() 但它什么也没做。但是当您将其设置为我不需要的 window.location 时它确实有效。

var slim = document.getElementById("1");
    var shady = document.getElementById("2");
    var standup = document.getElementById("3");
    var form = document.getElementById("form");
    form.addEventListener("submit", function(e) {
      e.preventDefault();
      if (
        standup.value === "stand up" &&
        shady.value === "shady" &&
        slim.value === "slim"
      ) {
        window.location = "https://example.com";
      } else {
        form.submit();
      }
    });

else: 提交到这个表单

<form id="form" action="/eyerepeat" method="get">
        <label for="fname">First name:</label>
        <input type="text" id="1" name="willthereal" /><br /><br />
        <label for="lname">Last name:</label>
        <input type="text" id="2" name="9" /><br /><br />
        <label for="action">Action:</label>
        <input type="text" id="3" name="please" /><br /><br />
        <input id="submit" type="submit" value="Submit" />
      </form>

【问题讨论】:

    标签: javascript html forms input


    【解决方案1】:

    e.preventDefault() 会阻止表单提交,即使以编程方式触发也是如此。

    相反,有条件地调用e.preventDefault - 仅在您确定不想提交时才调用:

    var slim = document.getElementById("1");
    var shady = document.getElementById("2");
    var standup = document.getElementById("3");
    var form = document.getElementById("form");
    form.addEventListener("submit", function(e) {  
      if (
        standup.value === "stand up" &&
        shady.value === "shady" &&
        slim.value === "slim"
      ) {
        e.preventDefault();
        window.location = "https://example.com";
      }
    });
    <form id="form" action="/eyerepeat" method="get">
      <label for="fname">First name:</label>
      <input type="text" id="1" name="willthereal" /><br /><br />
      <label for="lname">Last name:</label>
      <input type="text" id="2" name="9" /><br /><br />
      <label for="action">Action:</label>
      <input type="text" id="3" name="please" /><br /><br />
      <input id="submit" type="submit" value="Submit" />
    </form>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多