這裏是CodeIgniter的工作方案:(我很抱歉,如果問題的格式不正確的,這是我的拳頭張貼在這裏。)jQuery的對話和Ajax登錄提交
- 我有大表單提交,並且在驗證之後提交ajax。
- 在我的控制器中,如果用戶登錄,我將在用戶名中傳遞用戶名,並將其置於表單中隱藏的輸入字段中。如果用戶未在結果記錄爲
<input type="hidden" id="loggedin" name="username" value="" />
3.in我的javascript我檢查的形式是有效的(),如果用戶名!==「」然後我張貼的形式與ajax,否則我彈出與登錄頁面的對話框。當用戶登錄時,表單子工作正常。
問題是我無法弄清楚如何在登錄對話框中登錄用戶後發佈表單。
這裏來了代碼:
$('#MyForm').submit(function(event){
event.preventDefault();
var username=document.getElementById('loggedin').value;
if($('#MyForm').valid() && username!==""){
var serializeddata=$("#MyForm").serialize();
$.ajax({
type: "POST",
url: "formsubmition", // The urls are in CI format
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
data: serializeddata,
dataType: "html",
success: function(data) {
$('#message_ajax_anaz').html(data);
}
})
}else if($('#MyForm').valid() && username==""){
$("#loginpop").load("login").dialog();
}
});
登錄頁面Ajax代碼:
$('#login').submit(function(event){
event.preventDefault();
var dataser=$('#login').serialize();
$.ajax({
type: "POST",
url: "login",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
data: dataser,
dataType: "html",
success: function(data) {
$('#message_ajax').html(data);
}
})
而上述工作的對話框中很好,我可以正常登錄。
現在,我怎麼回在$(「#MyForm的」)。提交(功能 與現在用戶如登錄,也無需再次填寫表格?
就想出一個辦法 我希望它能幫助更多的人
我初始化對話外提交功能:
$("#loginpop").load("login").dialog({
autoOpen:false
})
然後改變了我的else語句:
在我登錄成功的AJAX功能,我增加:
$("#loggedin").val(data); // Changed the value of the hidden input with the username value on the fly. data contains the username
$('#MyForm').submit();
$('#loginpop').dialog('close');
現在一切工作和洛:)