简体   繁体   中英

force form submit button click with jquery

Trying to trigger the submit functionality from JQuery. what am I doing wrong? In theory, this should work. I've tried about 4 different ways though.

I have tried

$('input#submit').trigger("click");

$( form:first ).submit();

$( form:first ).trigger("submit");

$('form#databaseActionForm').submit();

NOTHNG HAS WORKED (YET)?!

CODE:

<html lang="en">
<head>
    <title>Database Management</title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <script src="http://code.jquery.com/jquery-3.1.0.min.js" integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s=" crossorigin="anonymous"></script>
        <style>
            table td { border: 1px solid black; }
            table td:first-child { text-align: left; }
        </style>
    <script>
        <!--
        $(document).ready(function() {
            $('#erase').click(function() {
                if (confirm("Are you sure that you want to ERASE ALL DATA from the database?"))
                {
                    $('#buttonTypePressed').val("erase");
                    $('input#submit').trigger("click"); <!-- HERE -->
                }
            });

            $('#update').click(function() {
                var appID = $('#updateAppID').val();
                var field = $('#fieldName').val();
                var value = $('#newValue').val();

                if (appID == null || appID == "") {
                    alert("You must enter the ID number of the entry you wish to modify.");
                    $('#updateAppID').focus();
                }
                else if (field == null || field == "") {
                    alert("You must choose which field you wish to modify.");
                    $('#fieldName').focus();
                }
                else if (value == null || value == "") {
                    alert("You must choose the new value you wish to appear in the database.");
                    $('#newValue').focus();
                }
                else {
                    $('#buttonTypePressed').val("update");
                    $('input#submit').trigger("click"); <!-- HERE -->
                }
            });

            $('#delete').click(function() {
                var appID = $('#deleteAppID').val();

                if (appID == null || appID == "") {
                    alert("You must enter the ID number of the entry you wish to delete.");
                    $('#deleteAppID').focus();
                }
                else {
                    $('#buttonTypePressed').val("delete");
                    $('input#submit').trigger("click"); <!-- HERE -->
                }
            });
        });
        -->
    </script>
</head>
<body>
    <div id="container">
        <from id="databaseActionForm" name="databaseActionForm" method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
            <table border=0 style="margin: 50px auto; text-align: right;">
                <tr style="text-align: center; font-weight: bold; font-size: 1.5em; text-decoration: underline;">
                    <th>Action</th>
                    <th>Additional Info</th>
                    <th>Button</th>
                </tr>
                <tr name="Clear">
                    <td>Erase Database</td>
                    <td style="text-align: center;">ARE YOU SURE?</td>
                    <td><input type="button" id="erase" name="erase" value="ERASE ALL?" /></td>
                </tr>
                <tr name="Update">
                    <td>Update Value</td>
                    <td>
                        Entry ID: <input type="text" id="updateAppID" name="updateAppID" placeholder="App entryID" /><br />
                        Field Name: <input type="text" id="fieldName" name="fieldName" placeholder="Field to change" /><br />
                        New Value: <input type="text" id="newValue" name="newValue" placeholder="New value" /><br />
                    </td>
                    <td><input type="button" id="update" name="update" value="Update Value" /></td>
                </tr>
                <tr name="Delete">
                    <td>Delete Payment</td>
                    <td>
                        Entry ID: <input type="text" id="deleteAppID" name="deleteAppID" placeholder="App entryID" />
                    </td>
                    <td><input type="button" id="delete" name="delete" value="Delete Entry" /></td>
                </tr>
            </table>
            <input type="hidden" id="buttonTypePressed" name="buttonTypePressed" />
            <input type="submit" id="submit" name="submit" value="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;" tabindex="-1"/>
        </form>
    </div>
</body>

There are 2 issues here, 1 is a typo in the element name form , you have it as from .

Another is the name/id of the submit button, it should not be submit as it will override the default submit property(the function) of the form element

<input type="submit" id="bsubmit" name="bsubmit" value="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;" tabindex="-1" />

Then just use the below snippet to submit the form

$('#databaseActionForm').submit();

Demo: Fiddle

I think the problem is you misspelled "form" as "from". Check the syntax highlighting. After that, any of these will work:

$('form#databaseActionForm').submit();

$('#databaseActionForm').submit(); // referencing the form's ID

document.databaseActionForm.submit(); // referencing the form's NAME

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM