ボタン入力のnameパラメータを省略すると、ボタンはシリアル化されないことが予想されます。私の期待は、シリアライズは、フォームが提出時にシリアル化される方法を模倣し、名前のない入力はフォームパラメータとして送信されないという事実に基づいています。私はこれを示すような単純なテストをコード化しました。 [Examine]ボタンをクリックすると、 "text = bob"と表示されます。チェックボックスをオンにすると、 "cb2 = on & text = bob"と表示されます。送信ボタンの値は決して含まれません。
<script type="text/javascript">
$(document).observe('dom:loaded', function() {
$('btn').observe('click', function() {
alert($('form').serialize());
return false;
});
});
</script>
</head>
<body>
<form id='form'>
Checkbox 1 <input type="checkbox" id="cb1" name="cb1" />
Checkbox 2 <input type="checkbox" id="cb2" name="cb2" /><br />
<input type='text' name='text' value='bob' />
<input type="submit" id="btn" value="Examine" />
</form>
フォームのHTMLコードとserialize()コールの実際の結果をコピー(またはリンク)できますか? – Zed