0

我继承了几种形式:

<tr>
    <form method="post" action="\">
        <td><input disabled type="text" name="t1" id="t1" value=""></td>
        <td><input disabled type="email" name="t2" id="t2" value=""></td>
        <td><input disabled type="email" name="t3" id="t3" value=""></td>
        <td><input type="submit" id="edit" value="Edit"></td>
        <td><input type="submit" name="change" value="Change"></td>
    </form>
</tr>
<tr>
    <form method="post" action="\">
        <td><input disabled type="text" name="t1" id="t1" value=""></td>
        <td><input disabled type="email" name="t2" id="t2" value=""></td>
        <td><input disabled type="email" name="t3" id="t3" value=""></td>
        <td><input type="submit" id="edit" value="Edit"></td>
        <td><input type="submit" name="change" value="Change"></td>
    </form>
</tr>
....

当我单击一个#edit按钮时,我想将链向上推到它自己的位置table,选择所有input子项并删除该disabled属性,但仅适用于该表单。

我试过这样的事情:

$('#edit').on("click", function(e){
    e.preventDefault();
    var form = $(this).parent("form");
    // or maybe a $.each ??
    form.children('input').removeAttr("disabled");
});

有任何想法吗?

4

2 回答 2

1

$(this).parent()实际上是 a <td>,所以它什么也不返回。

$(this).closest('form').find('input').prop('disabled', false);
于 2013-02-23T01:19:35.297 回答
0
$('#edit').on("click", function(e){
    e.preventDefault();
    var form = $(this).closest("form");
    // or maybe a $.each ??
    form.find('input').attr("disabled","");
});

使用closestandfind代替。

parent指的是确切的父母,而closest找到树上的第一个匹配项。 children是直子,不是孙子。

于 2013-02-23T01:19:36.647 回答