2012-07-27 75 views
0

這裏是CodeIgniter的工作方案:(我很抱歉,如果問題的格式不正確的,這是我的拳頭張貼在這裏。)jQuery的對話和Ajax登錄提交

  1. 我有大表單提交,並且在驗證之後提交ajax。
  2. 在我的控制器中,如果用戶登錄,我將在用戶名中傳遞用戶名,並將其置於表單中隱藏的輸入字段中。如果用戶未在結果記錄爲

<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'); 

現在一切工作和洛:)

回答