Jquery单选按钮提交表单

时间:2013-03-19 18:24:47

标签: php jquery serialization radio-button submit

我在一个页面上有多个表单都是这样的:ID值会改变,但选项可能类似。

<form class="test"><td>4000</td>
<td align='center'><input type='radio' name='radio' value='car' checked></td>
<td align='center'><input type='radio' name='radio' value='boat' ></td>
<td align='center'><input type='radio' name='radio' value='Plane' ></td>
<input type='hidden' name='id' value='4000'/>
<input type='hidden' name='location' value='local'/>
<div class="form" style="display: none;">
</div></form>

使用JQuery我试图在选择3个单选按钮中的任何一个时提交它。

<script>
$("input[name='radio']").click(function() {
    var CurrectForm=$(this).parents('.test:first');
    $.post(
        'do.php',
        CurrectForm.serialize(),
        function( response ) {
            CurrectForm.find('#form').html( response );
               show( response );
        }
    );
} );
</script>

我使用了类似于上面的复选框和下拉列表,它们运行良好。但是这似乎没有将值提交到do.php页面。提交的值以div格式显示。执行var_dump($_POST);会产生一个空数组。

有人能指出我正确的方向吗? 感谢

更改表格ti这似乎有用吗?

<td><form class="test">
<input type='radio' name='radio' value='car' checked>
<input type='radio' name='radio' value='boat' >
<input type='radio' name='radio' value='Plane' >
<input type='hidden' name='id' value='4000'/>
<input type='hidden' name='location' value='local'/>
<div class="form" style="display: none;">
</div></form></td>

为什么要改变原因呢?

Jfiddle与工作示例:) http://jsfiddle.net/QvpH5/

1 个答案:

答案 0 :(得分:0)

我的猜测是,您的网页上有多个表格test。发生了什么,当你使用parents()时,你没有意识到它首先找到所有的祖先,然后然后搜索 .test:first 。这将返回第一个表单的值,无论单击哪个表单。

看看这个jsFiddle看到修复(将.parents更改为.parent):http://jsfiddle.net/SDzzr/