2010-11-26 18 views
0

私は非常に苦労しています。何かが分かりにくいですが、間違ったHTMLをチェックしました.JavaScriptはFirebug経由でデバッグしようとしました。なぜフォームをシリアル化できないのですか?次のように私のコードは次のとおりです。は、jquery .serializeでフォームをシリアル化できません。

<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" type="text/css" href="http://ajax.microsoft.com/ajax/jquery.ui/1.8.6/themes/le-frog/jquery-ui.css" /> 
<link rel="stylesheet" type="text/css" href="./application/css/main.css" /> 
<link rel="stylesheet" type="text/css" href="./application/css/uniform.default.css" /> 
</head> 
<body> 
<div id="markerinfocontainer"> 
<div id="actionpanel"> 
<div id="reportmarker" title="click to report this marker as invalid"></div> 
<div id="vieweditmarker" class="view" title="click to edit this marker"></div> 
</div><div id="star-rating" class="rating"></div> 
<form id="markerForm" method="post" action=""> 
<table id="markertable"> 
<tr> 
<td class="label">Title</td> 
<td><input id="txtTitle" type="text" maxlength="70" /></td> 
</tr> 
<tr> 
<td class="label">Goalsize</td> 
<td><select id="selGoals"> <option value="1">2v2</option> <option value="2">5v5</option> <option value="3">7v7</option> <option value="4">11v11</option> </select></td> 
</tr> 
<tr> 
<td class="label">Fieldsize</td> 
<td><select id="selCapacity"> <option value="1">2v2</option> <option value="2">5v5</option> <option value="3">7v7</option> <option value="4">11v11</option> </select> 
</td> 
</tr> 
<tr> 
<td class="label">Fundament</td> 
<td><select id="selFundament"> <option value="1">Grass</option> <option value="2">Asphalt</option> <option value="3">Growel</option> <option value="4">Indoor</option> </select> 
</td> 
</tr> 
<tr> 
<td class="label">Facilities</td> 
<td>Stadium:<input type="checkbox" id="facStadium" />Waterpost:<input type="checkbox" id="facWaterpost" />Toilet:<input type="checkbox" id="facToilet" />Bench:<input type="checkbox" id="facBench" />Fence:<input type="checkbox" id="facFence" /> 
</td> 
</tr> 
<tr> 
<td class="label">Extra</td> 
<td><textarea id="txtExtra" rows="3" cols="20"></textarea></td> 
</tr> 
</table> 
</form> 
</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js"></script> 
<script src="./application/js/jquery.uniform.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
console.log("what!"); 
alert("argh"); 
$(document).ready(function() 
{ 
console.log("markerform " , $("#markerForm").serialize()); 
}); 
}); 
</script> 
</body> 
</html> 

答えて

7

HTMLフォーム要素はnameのattr、ないidのattrで動作します。だから、代わりに必要とするでしょう

<input type="checkbox" name="facStadium" id="facStadium" /> 

その後、あなたはシリアル化を呼び出すときに戻って取得する必要があります。また、2つの文書準備ハンドラーをお互いにネストしているとは限りません。内側のものを取り除く。

(また、千のWeb開発者は、あなたがレイアウトにテーブルを使用するたびに死ぬ...)あなたがネストされた2つの$(document).readyを持っているので、

+0

+1、笑 – Orbling

+1

うん、私は通常のテーブルを使用しませんが、プラグインは私を必要とします:Pそして、あなたが名前attrの程度正しかったです。素晴らしいthx :) P.S私はあなたやあなたの仲間のいずれかを殺さなかったことを望む – Jakob

2

は多分ですか?最後の行のための

$(document).ready(function(){ 
    console.log("what!"); 
    alert("argh"); 
    $(document).ready(function() 
    { 
     console.log("markerform " , $("#markerForm").serialize()); 
    }); 
}); 
関連する問題