0

我正在尝试根据单击的单选按钮使用 jquery 提交或隐藏。我正在将值提交给 mysql。单选按钮位于 tr 中。如果我在表单中包含一个提交按钮,我可以成功地使用该值更新 mysql。

<tr>
    <form name="MyStatusForm" id="MyStatusForm" method="post" action="update.php">
        <td class="statuscolumn">
            <input name='status' type='radio' value='1' />
            <label for="new">New</label>
            <input name='status' type='radio' value='2' />
            <label for="accept">Accept</label>
            <input name='status' type='radio' value='3' />
            <label for="resolve">Resolve</label>
        </td>
    </form>
</tr>

我的脚本查找单选按钮的值以确定要采取的操作。

$('input[type=radio]').click(function () {
    var $closestTR = $(this).closest('tr');
    var $closestForm = $(this).closest('form');
    if (this.value == '1') || (this.value == '2') {
        $closestForm.submit();
    }
    if (this.value == '3') {
        var ok = confirm("some message?");
        if (ok == true) {
            $closestTR.hide("slow");
        } else {
            return;
        }
    }
});

隐藏工作正常。只有提交不起作用。当我单击单选按钮并且没有更新 mysql 时没有响应。

谢谢你的帮助

4

2 回答 2

0

您的 if 中有语法错误,应该是

if ((this.value == '1') || (this.value == '2'))

另外,不要忘记按照@adeneo 的建议修复您的标记

于 2013-07-27T05:27:28.627 回答
0

工作演示

更正的标记

HTML

<table>
    <tr>
        <td class="statuscolumn">
            <form>
                <input name='status' type='radio' value='1' />
                <label for="new">New</label>
                <input name='status' type='radio' value='2' />
                <label for="accept">Accept</label>
                <input name='status' type='radio' value='3' />
                <label for="resolve">Resolve</label>
            </form>
        </td>
    </tr>
</table>

js

$('input[type="radio"][name="status"]').click(function () {
    var $closestTR = $(this).parents('tr');
    $closestForm = $(this).parents('form');
    if (($(this).attr('value') == '1') || ($(this).attr('value') == '2')) {
        $closestForm.submit();
    }
    if (this.value == '3') {
        var ok = confirm("some message?");
        console.log(ok);
        if (ok == true) {
            $closestTR.hide();
        } else {
            return;
        }
    }
});
于 2013-07-27T05:24:43.480 回答