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()は実際には<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","");
});

代わりにclosestとを使用してください。find

parent正確な親を参照しますclosestが、ツリーの最初の一致を検索します。 children孫ではなく直接の子供です。

于 2013-02-23T01:19:36.647 に答える