jQuery 添加 input 表單提交 無數據

上次開發項目,我發現一個很奇怪的現象,讓我苦惱了很久,現在分享給大家,希望大家看完就會弄。

情況是這樣的,直接上代碼:

<html>
<head></head>
<body>
<form action="xx.php" method="post" >
<table>

 <tr id='before'>
<td>用戶名</td>
<td><input type='text' name='uname'/></td>
 </tr>

<tr><td><input type='submit' value='提交'/></td></tr>

 </table></form>

<script>
var op=$("<input type='hidden' name='uid'/>");
$("#before").before(op);
</script>
</body>
</html>



代碼如上,有一個表單,表單裏面有一個文本框,可以輸入用戶名。然後,在後面我們用jQuery還添加了一個隱藏域。當點擊提交時,你會發現只有用戶名被提交了,而用jquery添加的隱藏域卻沒有提交。

這是爲什麼呢?

原來,jquery添加的元素,都有一個form屬性。如果想要解決這個問題,只需要改兩個地方。

1.首先爲form取個名字



<form action="xx.php" method="post" >

改成

<form action="xx.php" name="myform" method="post" >

2.在創建表單元素時,別忘給表單元素加form屬性。



var op=$("<input type='hidden' name='uid'/>");

改成

var op=$("<input type='hidden' name='uid'/>");
op.attr("form","myform");

這樣提交表單時就會把這個動態創建的元素也提交上去了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章