0

我有一个表格。

            <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

4 回答 4

4

Try this:

$(".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>');
    }
});
于 2013-04-27T10:05:44.320 回答
1

代替

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

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

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

于 2013-04-27T10:29:54.267 回答
0

To make it submit you will need to return true from the submit handler.

$(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 I would just change the value of the submit not replace the whole button.

于 2013-04-27T10:04:43.170 回答
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;              
            }
    }
于 2013-04-27T10:12:30.737 回答