我正在使用JavaScript Prototype(通过Ruby on Rails)来处理一些Ajax调用;但在一个特殊情况下,我错过了表格中的一个字段。
我有这样的布局:
+---------+---------+
| Thing 1 | Thing 2 |
+---------+---------+-----------+
| o Opt 1 | o Opt 1 | <Confirm> |
| o Opt 2 | o Opt 2 | |
+---------+---------+-----------+
选项1和2是单选按钮,确认是一个按钮。整个表格都包含在一个表单中,代码如下:
<form action="javascript:void(0)">
<input type="hidden" name="context" value="foo" />
<input type="hidden" name="subcontext" value="bar" />
<table>
<tr><td>Thing 1</td><td>Thing2</td></tr>
<tr><td>
<input type="radio" name="choice" value="1.1" />Opt 1<br />
<input type="radio" name="choice" value="1.2" />Opt 2<br />
</td><td>
<input type="radio" name="choice" value="2.1" />Opt 1<br />
<input type="radio" name="choice" value="2.2" />Opt 2<br />
</td><td>
<input name="choice_btn" type="button" value="Confirm"
onclick="new AJAX.Updater('my_form', '/process_form',
{asynchronous:true, evalScripts:true,
parameters:Form.serialize(this.form)});
return false;" />
</td></tr>
</table>
</form>
但是我可以看到通过单击“确认”按钮生成的POST包含隐藏字段的foo
和bar
值,但不包含单选按钮的选择。
这是因为我的表格中有一张桌子吗?我怎么能绕过这个?
答案 0 :(得分:0)
发现问题,从上面的粘贴代码中看不出来。在构建AJAX请求之前,onclick处理程序正在禁用许多表单对象,包括单选按钮和按钮本身。如果我将这些步骤移到AJAX onLading
参数,则会全部发送。