Php 在所有字段都有值之前禁用“提交”按钮无效

Php 在所有字段都有值之前禁用“提交”按钮无效,php,jquery,Php,Jquery,我不熟悉使用jquery,只是复制了jquery代码 如果表单中的所有字段都未填充,jquery将禁用Sumbit按钮。 表单中已填入表中的数据,但“提交”按钮仍处于禁用状态 我哪里出错了 <?php error_reporting(0); session_start(); include('dbconn.php'); $admin_ID = $_SESSION['admin_ID']; if (empty($_SESSION['admin_ID']) &&

我不熟悉使用jquery,只是复制了jquery代码

如果表单中的所有字段都未填充,jquery将禁用Sumbit按钮。 表单中已填入表中的数据,但“提交”按钮仍处于禁用状态

我哪里出错了

<?php 
error_reporting(0);

session_start();
include('dbconn.php');  
$admin_ID   = $_SESSION['admin_ID'];

if (empty($_SESSION['admin_ID']) && parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) != '../index.php') {
    header('Location: ../index.php');
    exit;
}



$query = "SELECT * FROM tbl_admin WHERE admin_ID='$admin_ID'";
$result = mysqli_query($con, $query);

if (!$query) {
    printf("Error: %s\n", mysqli_error($con));
    exit();
}
?>
<html>
    <head>
        <link rel="stylesheet" href="css/add.css" type="text/css" media="screen"/>
        <script type="text/javascript">
        (function() {
    $('form input').keyup(function() {

        var empty = false;
        $('form > input').each(function() {
            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (empty) {
            $('#Submit').attr('disabled', 'disabled'); 
        } else {
            $('#Submit').removeAttr('disabled'); 
        }
    });
})()




        </script>

    </head>
    <body>
        <div id="header">
            <img src="images/sbma.png" class="logo" id="logo"></img>
            <a style = "float:left;">My Account</a>
            <a href="MainMenu.php">Home</a>
        </div>
        <div id="navigation">

        </div>
        <div id="section">
        <?php while($row1 = mysqli_fetch_array($result)):;?>
            <form class="form-style-1" action="MyUpdateProcess.php" method="post">
                <ul>
                <fieldset class="fieldset-company">
                    <li>
                        <label>Username:</label>
                        <input type='text' name='username' id='input'  value = "<?php echo $row1['admin_Username'];?>" maxlength="50" />
                    </li>
                    <li>
                        <label>Password:</label>
                        <input type='password' name='password' id='input' value="<?php echo $row1['admin_Password'];?>" maxlength="50" />
                    </li>
                    <li>
                        <label>First Name:</label>
                        <input type='text' name='fname' id='input'  value = "<?php echo $row1['admin_Fname'];?>" maxlength="50" />
                    </li>
                    <li>
                        <label>Middle Name:</label>
                        <input type='text' name='mname' id='input' value="<?php echo $row1['admin_Mname'];?>" maxlength="50" />
                    </li>
                                        <li>
                        <label>Last Name:</label>
                        <input type='text' name='lname' id='input'  value = "<?php echo $row1['admin_Lname'];?>" maxlength="50" />
                    </li>
                    <li>
                </fieldset>
                <fieldset class="fieldset-contacts">                    
                        <label>Email:</label>
                        <input type='text' name='email' id='input' value="<?php echo $row1['admin_Email'];?>" maxlength="50" />
                    </li>
                    <li>
                        <label>Telephone:</label>
                        <input type='text' name='telephone' id='input' value="<?php echo $row1['admin_Telephone'];?>" maxlength="50" />
                    </li>
                    <li>
                        <label>Mobile:</label>
                        <input type='text' name='mobile' id='input'  value = "<?php echo $row1['admin_Mobile'];?>" maxlength="50" />
                    </li>
            <?php endwhile;?>                   


                </fieldset>
                    <li>
                      <input id="Submit" type='Submit' disabled="disabled" name='Submit' value='Submit' />
                    </li>
                </ul>
    </form>
        </div>
        <div id="footer">
    S.B.M.A Centralized Information System 
    </div>
    </body>
</html>
$('form>input')
表示直接子项

$('form input')
表示任何后代

您的输入元素都不是表单元素的直接子元素

更改为
$(“表单输入”)

还有其他一些变化,例如使用
prop
而不是
attr
,这将有所帮助。以及绑定到
keyup
change
事件

(function() {
    $('form input').on('keyup change', function() {

        var empty = false;
        $('form input').each(function() {
            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (empty) {
            $('#Submit').prop('disabled', true); 
        } else {
            $('#Submit').prop('disabled', false); 
        }
    });

    $('form input:eq(0)').keyup(); // run the check
})()
但即使这样也行不通。为什么?因为while循环打印出多个
元素而从未关闭它们。你有一个表单在一个表单内部,等等,这取决于有多少个循环。这将导致意外行为。您需要决定如何处理while循环,并确保正确打印表单

另外,submit元素只提交它所在的一个表单。那么也许你应该再吃一个

此外,HTML id必须是唯一的!您必须从所有这些输入中删除
id=“input”
,否则您将获得更多意外行为。

$('form>input')
表示直接子项

$('form input')
表示任何后代

您的输入元素都不是表单元素的直接子元素

更改为
$(“表单输入”)

还有其他一些变化,例如使用
prop
而不是
attr
,这将有所帮助。以及绑定到
keyup
change
事件

(function() {
    $('form input').on('keyup change', function() {

        var empty = false;
        $('form input').each(function() {
            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (empty) {
            $('#Submit').prop('disabled', true); 
        } else {
            $('#Submit').prop('disabled', false); 
        }
    });

    $('form input:eq(0)').keyup(); // run the check
})()
但即使这样也行不通。为什么?因为while循环打印出多个
元素而从未关闭它们。你有一个表单在一个表单内部,等等,这取决于有多少个循环。这将导致意外行为。您需要决定如何处理while循环,并确保正确打印表单

另外,submit元素只提交它所在的一个表单。那么也许你应该再吃一个

此外,HTML id必须是唯一的!您必须从所有这些输入中删除
id=“input”
,否则您将获得更多意外行为。

执行以下操作:

$('form input[type=“text”]”)。键控(函数(){

或者在文本框中添加一个类,并检查这些类是否有值

$('form input[type=“text”]”)。键控(函数(){


或者向文本框中添加一个类,并检查这些类是否有值

您也可以这样尝试:

$(document).ready(function() {
    $('form input').keyup(function() {

        var empty = false;
        $('form input').each(function() {

            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (empty) {
            $('#Submit').attr('disabled', 'disabled'); 
        } else {
            $('#Submit').removeAttr('disabled'); 
        }
    });
});

您也可以这样尝试:

$(document).ready(function() {
    $('form input').keyup(function() {

        var empty = false;
        $('form input').each(function() {

            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (empty) {
            $('#Submit').attr('disabled', 'disabled'); 
        } else {
            $('#Submit').removeAttr('disabled'); 
        }
    });
});

对不起,我还不能评论


为什么不在所有输入字段中添加“required”属性,就像这样:
对不起,我还不能评论


为什么不在所有输入字段中添加“required”属性,如下所示:
您是否尝试过
$(“#Submit”).prop(“disabled”,false);
并在检查条件之前打印“empty”值,以确保前一部分是否正常工作您可能还希望在$(表单)中执行验证。Submit()函数,这样您就不必检查keyUp上的所有输入。我尝试了它,但提交仍然不可用。您是否尝试了
$(“#提交”)。prop(“disabled”,false);
,并且在检查条件之前还打印“empty”值,以确保前一部分是否正常工作。您可能还希望在$(表单)中执行验证。Submit()函数,这样你就不必检查keyUp上的所有输入。我尝试过,但提交仍然是无效的。哈,是的,但我仍然想知道为什么我的代码不起作用。是的,我知道这不是你问的。这就是为什么如果我有选择的话,我会发表评论而不是回答;)我会让JS专家帮你编写代码:)哈哈,是的,这很管用,但我还是想知道为什么我的代码不管用。是的,我知道这不是你问的。这就是为什么如果我有选择的话,我会发表评论而不是回答;)我会让JS专家帮你编写代码:)代码的问题比我想象的要多。进一步检查后,我修改了我的答案。代码有很多问题如果问题超出了我的想象,经过进一步检查,我已经修改了我的答案。