2013-04-27 73 views
0

我有一个表单。jQuery更改提交值为“请稍等”,然后使用PHP提交表格

  <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> 

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

我不想使用JavaScript POST,我希望它重定向。

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

怎么回事,我该如何解决这个问题?

$(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();     
       } 
      }); 
     }); 

我已经试过什么:

的HTML变线后添加

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

它只是和以前一样。

我该如何解决这个问题? 谢谢。

回答

2

试试这个:

$(".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>'); 
    } 
}); 
+0

谢谢你的回复,但这不是我真正想要的。 这取消了提交,现在我甚至不能提交第二次尝试。我希望将值更改为“请稍候”,然后重定向到页面,而不是停止提交过程。 – user2326532 2013-04-27 10:07:20

+0

删除event.preventDefault(),它的工作,谢谢。 – user2326532 2013-04-27 10:08:46

+0

很高兴帮助! – 2013-04-27 10:09:26

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我只是改变提交的值不能取代整个按钮。

+0

我该如何更改该值? – user2326532 2013-04-27 10:07:46

+0

按照Palash的回答:) – 2013-04-27 10:10:11

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;    
      } 
    } 
1

更换

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

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

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