jQuery将提交值更改为“Please wait”&然后使用PHP提交表单

时间:2013-04-27 10:02:17

标签: php jquery

我有一张表格。

            <form action="login.php" method="post" id="form">
                <input type="text" name="name" class="textbox" id="name" placeholder="Username"><br /><br />
                <input type="password" name="pass" class="textbox" id="pass" placeholder="Password"><br /><br />
                <div id="holder">
                    <input type="submit" name="submit" value="Login" class="submit_wide">
                </div>
                <br />
            </form>

我想在点击时将提交输入的值更改为“请稍候......”。因此,当页面重定向时,用户将看到“请稍候......”。

我不想使用javascript发帖,我希望它重定向。

当我点击“登录”时,它会变为“请稍候”,但提交操作会停止,但当我再次点击时,会重定向。

出了什么问题,我该如何解决?

$(document).ready(function() {
            $(".submit_wide").click(function() 
            {
                if ($("#name").val() != '' && $("#pass").val() != '')
                {
                    $("#holder").html('<input type="submit" name="submit" value="Please wait.." class="submit_wide">');
                }
                else
                {
                    $("#error").fadeIn("slow");
                    $("#error").html('<span class="alert alert-error">Please fill ALL of the fields.</span>');
                    event.preventDefault();                 
                }
            });
        });

我尝试了什么:

添加

$("#form").submit();

在HTML更改行之后。

它和以前一样。

如何修复此问题以及导致此问题的原因? 感谢。

4 个答案:

答案 0 :(得分:4)

试试这个:

$(".submit_wide").click(function (event) {
    if ($("#name").val() != '' && $("#pass").val() != '') {
        $(this).val('Please wait..');
    } else {
        event.preventDefault();
        $("#error").fadeIn("slow");
        $("#error").html('<span class="alert alert-error">Please fill ALL of the fields.</span>');
    }
});

答案 1 :(得分:1)

替换

$("#holder").html('<input type="submit" name="submit" value="Please wait.." class="submit_wide">');

$('.submit_wide').val('please wait..');

当您使用html()时,它会删除您的提交按钮并创建一个新按钮。您应该只更改按钮的值。

答案 2 :(得分:0)

要使其提交,您需要从提交处理程序返回true。

$(document).ready(function() {
            $(".submit_wide").click(function() 
            {
                if ($("#name").val() != '' && $("#pass").val() != '')
                {
                    $("#holder").html('<input type="submit" name="submit" value="Please wait.." class="submit_wide">');
                    return true;
                }
                else
                {
                    $("#error").fadeIn("slow");
                    $("#error").html('<span class="alert alert-error">Please fill ALL of the fields.</span>');            
                    return false;
                }
            });
        });

ps我只是改变提交的值而不是替换整个按钮。

答案 3 :(得分:0)

将此设为您的html脚本:

<form action="login.php" method="post" id="form" onSubmit="return replaceIt()" >
                <input type="text" name="name" class="textbox" id="name" placeholder="Username"><br /><br />
                <input type="password" name="pass" class="textbox" id="pass" placeholder="Password"><br /><br />
                <div id="holder">
                    <input type="submit" name="submit" value="Login" class="submit_wide">
                </div>
                <br />
            </form>

这是你的JS功能:

function replaceIt() {
            if ($("#name").val() != '' && $("#pass").val() != '')
            {
                $("#holder").html('<input type="submit" name="submit" value="Please wait.." class="submit_wide">');
                return true;
            }
            else
            {
                $("#error").fadeIn("slow");
                $("#error").html('<span class="alert alert-error">Please fill ALL of the fields.</span>');
                return false;              
            }
    }