使用带有条件的 Javascript 提交表单,必须按两次提交

时间:2021-07-21 18:18:07

标签: javascript php html forms ajaxform

我创建了一个表单,我希望在该表单中,如果有某些特定条目,则不应提交该表单,而应执行某些功能。但是对于每个其他条目,该表单应该被提交并正常工作。

    function checkuser() {
        let name = document.forms[0].name.value;
        let email = document.forms[0].email.value;
        let message = document.forms[0].message.value;
        if ((name == "admin") && (email == "admin@admin.com") && message == ("admin")) {
            alert("hey"); //SOME FUNCTION
        } else {
            document.forms[0].setAttribute("action", "login.php");
            document.forms[0].setAttribute("onsubmit", " ");
            document.forms[0].submit();
        }
      }
    <form method="post" onsubmit="event.preventDefault(); return checkuser(this)" id="form">
    
         <table align="center">
    
             <tr>
                 <th><label for="name"> Name : </label></th>
                 <td> <input type="text" height=100px id="name" name="name" placeholder="Enter your Name..." required> </td>
    
             </tr>
    
             <tr>
                 <th><label for="email"> Email : </label> </th>
                 <td><input type="email" id="email" name="email" placeholder="Enter your Email ID..." required></td>
             </tr>
    
             <tr>
                 <th><label for="phone"> Phone Number : </label> </th>
                 <td><input type="tel" id="phone" name="phone" placeholder="Enter your Phone no..." pattern="[0-9]{10}"></td>
             </tr>
    
             <tr>
                 <th><label for="message"> Message : </label> </th>
                 <td><textarea id="message" name="message" placeholder="Enter Message..." required></textarea></td>
             </tr>
    
         </table>
    
         <div class="buttons">
             <input type="submit" value="Submit" name="submit">
             <input type="reset" value="Reset" name="reset">
         </div>
    </form>

它工作得很好,但问题在于,对于正常值,我必须按提交按钮两次将表单重定向到“登录.php" 并提交。我认为,当我按下它一次时,它会删除“提交”方法并将“操作”添加到表单中,然后按下两次,它就会被提交。

我需要它只需一键即可工作。如果我输入特殊值,它应该执行以下函数,对于正常值,它应该使用“login.php”作为动作直接提交表单。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我就是这样做的...

    function checkuser() {
        let name = document.forms[0].name.value;
        let email = document.forms[0].email.value;
        let message = document.forms[0].message.value;
        if ((name == "admin") && (email == "admin@admin.com") && message == ("admin")) {
            alert("hey"); //SOME FUNCTION
        } else {
            document.forms[0].submit();
        }
      }
    <form method="post" action="login.php" id="form">
    
         <table align="center">
    
             <tr>
                 <th><label for="name"> Name : </label></th>
                 <td> <input type="text" height=100px id="name" name="name" placeholder="Enter your Name..." required> </td>
    
             </tr>
    
             <tr>
                 <th><label for="email"> Email : </label> </th>
                 <td><input type="email" id="email" name="email" placeholder="Enter your Email ID..." required></td>
             </tr>
    
             <tr>
                 <th><label for="phone"> Phone Number : </label> </th>
                 <td><input type="tel" id="phone" name="phone" placeholder="Enter your Phone no..." pattern="[0-9]{10}"></td>
             </tr>
    
             <tr>
                 <th><label for="message"> Message : </label> </th>
                 <td><textarea id="message" name="message" placeholder="Enter Message..." required></textarea></td>
             </tr>
    
         </table>
    
         <div class="buttons">
             <input type="button" value="Submit" onclick="checkuser();">
             <input type="reset" value="Reset" name="reset">
         </div>
    </form>

相关问题