2017-08-27 105 views
1

如何提交表單,如果滿足某些條件。

\t \t 
 
$("form.formajax").submit(function(e) { 
 

 
e.preventDefault(); 
 

 
var data = $(this).serialize(); 
 
var url = $(this).attr("action"); 
 
var form = $(this); // Add this line 
 
$.post(url, data, function(data) { 
 

 

 
$(form).children(".loginresult").html(data.loginresult); 
 

 
if (data.success == 1) 
 
\t { 
 
    // SUBMIT the form here with POST Values (and redirect user) 
 
    } 
 

 

 

 
}); 
 
return false; 
 
});
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 

 

 
    <form class="login formajax" action="abc.php" method="post"> 
 
    <input type="email" > 
 
    <input type= "password"> 
 
    <input type="submit"> 
 
    </form>

這是我的代碼提交使用Ajax的形式。它返回一些值。

它還名稱data.success

返回10如果這個條件得到滿足if (data.success == 1)

我想提交表單(將用戶重定向+提交後的值),但如何?

+0

你有沒有試過'$(this).submit()'?或者,你在找別的東西嗎? – Nisarg

+0

尚未@NisargShah – Toby

+0

[This](https://stackoverflow.com/a/11543243/5894241)答案顯示如何綁定回調以形成提交完成事件,然後您可以將用戶重定向到另一個頁面。 – Nisarg

回答

0

成功提交表單後,您可以重定向。

您可以使用jQuery#serialize

它會使用key=value1 & key2-value2

$("form.formajax").submit(function(e) { 

    e.preventDefault(); 

    var data = $(this).serialize(); 
    //somecode 
    $.post(url, data, function(data) { 

     if (data.success == 1) { 
      var myNewUrl = "some_url ?" + data; 
      //myNewUrl will be `url?key=value1 & key2-value2` 
      $(location).attr('href', myNewUrl); //jQuery 

     } 
    }); 
    return false; 
}); 

有關重定向頁面序列化表單數據可以檢索查詢字符串值

+0

但是我無法發送POST值bro – Toby

+0

您想通過重定向發送表單數據嗎? –

+0

是啊,兄弟:))))) – Toby

0

您可以填寫在表格上.submit()函數形式。因此,它可以使用這兩種語句來完成:

$(this).submit(); // Since you are inside an event handler on the form. 

或者,

$(".login").submit(); // Since login is the css class on the form. 

然後,解釋here,你可以聽表單提交完成事件爲:

$("form.formajax").bind('ajax:complete', function() {...}); 

$("form.formajax").submit(function(e) { 
 

 
    e.preventDefault(); 
 

 
    var data = $(this).serialize(); 
 
    var url = $(this).attr("action"); 
 
    var form = $(this); // Add this line 
 
    $.post(url, data, function(data) { 
 

 

 
    $(form).children(".loginresult").html(data.loginresult); 
 

 
    if (data.success == 1) { 
 
     // SUBMIT the form here with POST Values (and redirect user) 
 
     $(this).submit(); 
 
    } 
 
    }); 
 
    return false; 
 
}); 
 

 
// Wait for form submission. 
 
$("form.formajax").bind('ajax:complete', function() { 
 
    alert("Redirect the user here."); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 

 
<form class="login formajax" action="abc.php" method="post"> 
 
    <input type="email"> 
 
    <input type="password"> 
 
    <input type="submit"> 
 
</form>

+0

它在所有條件下提交表格。 – Toby

+0

我想知道爲什麼...你可以嘗試在瀏覽器中調試它嗎?也許AJAX響應有些問題。 – Nisarg

+0

該代碼的作品,如果我只是使用一個簡單的重新直接代碼。但如果我用'$(。login).submit();替換它'''它不起作用 – Toby

相關問題