2013-10-18 51 views
1

我對ajax相當陌生,我正在使用jquery mobile。我正在做的是一個彈出窗口內的登錄表單,我必須編寫代碼才能使兩個工作,但我只是不確定如何連接兩個,以便它實際工作。Jquery Popup表單提交

這裏是彈出HTML

<a href="#popupLogin" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="check" data-theme="a" data-transition="pop">Login</a> 
     <div data-role="popup" id="popupLogin" data-overlay-theme="a" data-theme="a" class="ui-corner-all"> 
     <form id="popuplogin"> 
      <div style="padding:10px 20px;"> 
       <h3>Please Login</h3> 
       <label for="un" class="ui-hidden-accessible">Username:</label> 
       <input type="text" name="user" id="un" value="" placeholder="username" data-theme="a"> 
       <label for="pw" class="ui-hidden-accessible">Password:</label> 
       <input type="password" name="pass" id="pw" value="" placeholder="password" data-theme="a"> 
       <button type="submit" data-theme="b" data-icon="check">Sign in</button> 
      </div> 
     </form> 
     </div> 

,這裏是我的腳本。我的問題是如何將兩者連接在一起。

$("#popupLogin").submit(function() { 
$.ajax({ 
type: "POST", 
url: "submiturl", 
data: $("input#name").val(), 
success: function(html) { 
    // show the confirmation inside the popup 
} 
}) 
}) 

說實話,我甚至不知道我完全理解AJAX,但如果有人可以幫助我理解它。這將不勝感激。

+0

沒有ID形式的窗體,所以什麼都不會觸發。更不用說你有3個不同的標籤,它們的ID是'popuplogin',它不是有效的HTML5。 ID必須是唯一的。 –

+0

以及我理解的ajax的開始部分我只是沒有完全理解如何代碼部分的作品。也是我使用的代碼是直接從jquery移動[網站](http://view.jquerymobile.com/1.3.2/dist/demos/widgets/popup/) –

+0

無論你在哪裏得到它,沒有形式與id「形式」,所以沒有ajax將被稱爲。也沒有與ID「名稱」的輸入,所以沒有價值。當你提交表單時,jQuery將會觸發,因爲它在表單提交時觸發。當它觸發時,它會調用ajax函數。 –

回答

1

嘗試這樣的事情。

<button type="button" data-theme="b" data-icon="check" data-inline="true" onclick="validLogin()">Sign in</button> 

通過添加onclick來調用您的javascript函數。 I.E連接兩段代碼

然後在你的javascript中做這樣的事情。

function validLogin(){ 
var uname=$('#uname').val(); 
var password=$('#password').val(); 
$.ajax({ 
    type: "POST", 
    url: "scripts/processed.php", 
    data: {"uname": uname, "password":password}, 
    cache: false, 
    success: function(result){ 
     var result=trim(result); 
     if(result=='correct'){ 
      window.location='index.php'; 
      $('#loginForm').submit(); 
     }else{ 
      $("#loginerror").html(result); 
      return false; 
     } 
    } 
}); 
} 

應該做你想做的。

0

見該行:

<a href="#popupLogin" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="check" data-theme="a" data-transition="pop">Login</a> 

<form id="popuplogin"> 

變化<a href="#popupLogin"<a href="#popuplogin"

+1

錯,他應該完全更改ID,因爲它們應該是100%唯一的。 –

+0

彈出加載就好了會改變什麼呢? –

0

你彈出的代碼看起來是正確的。 我會改變你的表單代碼

<form id="formLogin" action="@submitUrl" method="post"> 

那麼你的提交按鈕沒有對子級你需要做任何JavaScript提交表單數據。