2015-02-11 48 views
1

是否可以通過jQuery POST表單並處理結果? (不使用json,ajax等)。使用jQuery POST表單並處理結果

事情是這樣的:

<form id="loginform"> 
     //some input fields and a submit button. 
</form> 

,然後從jQuery的:

$("#loginform").submit(function (e) { 
    $.post("somePHPscript") 
    .done(function (response) { 
     //Handle response 
}); 
}); 

..還是那樣等於移除的形式,只是結合將事件提交按鈕,並採取手動輸入?

+2

'$。員額()'是AJAX – 2015-02-11 01:44:11

回答

1

我不知道是什麼原因,你會想,通過覆蓋默認的形式操作,而不是使用處理結果提交一個表單AJAX等

你會想讀此:http://api.jquery.com/submit/將概述如何捕獲表單提交事件,您可以使用上述鏈接中概述的event.preventDefault()阻止移動到另一頁。

+0

是,和鏈接他們也使用輸入字段手動:如果($( 「輸入:第一」).VAL()===「正確「) - 所以我的問題是它是否可以一起完成,或者如果我不得不手動從輸入中提取信息。 :-)請記住,我需要通過POST請求完成此操作。 – 2015-02-11 02:09:34

+0

如果您不希望表單進行任何形式的提交,它爲什麼需要在表單中進行發佈請求? 在用例中,您將不得不從輸入中提取數據並對其進行操作,除非您可以將數據從事件參數中提取出來。 – 2015-02-11 02:23:47

+0

通過手動使用輸入,我的意思是僅在jQuery中執行$ .post,如:$ .post(「somePHPscript.php」,{un:$(「#usernameinput」)。val,pw:$(「 。#passwordinput「)VAL}); - 檢查betomoretti的答案..我不知道它是否有效,但它是爲了我正在尋找的。 – 2015-02-11 14:08:13

1

您擁有的代碼將處理響應。你只需要用它做點什麼。如果你返回文本字符串,你可以這樣做:

.done(function(response){ 
    alert(response); 
}); 

如果要返回一些HTML,也許是這樣的:

.done(function(response){ 
    $(response).insertAfter('div'); 
}); 

編輯

當然,如果您提交表單,那麼嘗試從服務器獲取響應沒有意義。但是現在您的代碼正在提交表單並嘗試執行AJAX請求。不妨停止提交和執行AJAX請求的表單,以便您可以對響應進行一些操作。

+0

好吧,基本上我希望表單提交不管(從表單動作或jQuery提交點擊事件),但我想響應最終在jQuery中,所以我可以處理結果。 – 2015-02-11 02:07:51

+0

如果您提交表單,您將被帶到不同的頁面或刷新頁面。您只需將數據發送到服務器並處理響應。因此onClick,您將對服務器進行AJAX調用,並將響應傳回給客戶端。 – 2015-02-11 02:10:27

1
<form id="the-form" role="form"> 
    <input type="button" id="button-form"> 
</form> 

$("#button-form").on('click', function (e) {  
    e.preventDefault(); 
    $.post($("#the-form").attr('action'), function(response) {console.log(response)}); 
}); 
+0

你測試了嗎?當我運行它,它似乎打印我的網頁上的所有我的HTML ..但你的迴應是有點我希望找到 - 如果只有它會工作..如果你調用的url返回一個字符串,響應是要去的 – 2015-02-11 15:48:25

+0

是一個字符串...如果它返回一個完整的HTML頁面...它將成爲整個頁面..該網址應該只返回你需要處理..一個數據,一個字符串,一個div ... http: //的jsfiddle。net/rd7yne9m /查看控制檯以查看結果 – betomoretti 2015-02-11 17:51:05