2012-09-27 30 views
1

我有HTML像這樣:jQuery的.load()不會將數據加載到<form></form>

<form> 
<div id="to_receive_data"> 
</div> 
</form> 

的Javascript,像這樣:

$("#to_receive_data").load("./loadable/a_form_to_load.php"); 

當.load()完成後,DOM顯示:

<form> 
</form> 
<div id="to_receive_data"> 
<input name="data_from_ajax" value"help_i_need_a_form"/> 
</div> 

正如你所看到的,div被移到元素外面。

當我按下提交時,操作頁面沒有收到任何參數。這裏有一個.load()怪癖,我不知道嗎?

+0

嘗試從url中刪除'。/'。 – timidboy

+3

輸出「a_form_to_load.php」是什麼?只是 ''?它應該與無效標記有關。 – undefined

+0

有了這個小提琴:http://jsfiddle.net/G2Cz6/它似乎不應該是一個問題。我懷疑這是@undefined建議的事情,你返回的標記是無效的,並且脫離了'form'元素。我以前見過這個,我認爲這就是它的原因。 –

回答

0

您假設您收到的數據是有效的,您可以嘗試類似的方式並繞過加載方法。

$.ajax({ 
    url: "form.php", 
    dataType: "text", 
    type: "GET", 
    success: function (data){ 
     //manually insert the page 
     $("#to_receive_data").html(data); 
    } 
}); 
0

.load()方法從服務器加載數據並將返回的HTML放入匹配的元素中。有些功能支持類似.load()的功能。請參閱以下功能。

  • $就
  • $。員額
  • $不用彷徨

可以使用的兩種以上功能。

請參考下面的例子來實現。

$.ajax({ 
    type: 'POST', 
    url: './loadable/a_form_to_load.php', 
    data: data, 
    dataType: dataType, 
    success: function (data){ 
    $("#to_receive_data").html(data); 
    } 
}); 

否則,如果你想要一個更簡化的版本也試試這個。

$.post('./loadable/a_form_to_load.php', function(data) { 
    $("#to_receive_data").html(data); 
}); 

希望這會幫助你。如果您有任何問題,請不要猶豫,問。謝謝

相關問題