【问题标题】:How to change an attribute of all form inputs in jquery?如何更改jquery中所有表单输入的属性?
【发布时间】:2013-02-23 01:16:35
【问题描述】:

我继承了几种形式:

<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");
});

有什么想法吗?

【问题讨论】:

    标签: javascript jquery forms parent children


    【解决方案1】:

    $(this).parent() 实际上是一个&lt;td&gt;,所以它什么也不返回。

    $(this).closest('form').find('input').prop('disabled', false);
    

    【讨论】:

    • 你的工作和他不工作的原因是他有编辑作为多个元素的 id。
    • @marteljn 啊 .. 好吧,您可以将 ID 更新为唯一(您应该这样做)或改用$("[id=edit]").on('click'
    • @Patrioticcow 对我来说似乎工作正常,除了第二行有 iclass
    • @Patrioticcow 另一个问题是您绑定到提交类型按钮上的点击事件。你能把它改成button吗?
    • 成功了。你的代码没问题,我的 html 呈现有点错误。谢谢
    【解决方案2】:
    $('#edit').on("click", function(e){
        e.preventDefault();
        var form = $(this).closest("form");
        // or maybe a $.each ??
        form.find('input').attr("disabled","");
    });
    

    请改用closestfind

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

    【讨论】:

    • @Patrioticcow 我注意到另一个问题,您将edit 作为 ID 不止一次
    猜你喜欢
    • 2014-11-25
    • 2013-05-17
    • 2014-12-31
    • 1970-01-01
    • 2013-08-12
    • 2015-09-22
    • 1970-01-01
    • 2013-10-07
    • 2016-05-30
    相关资源
    最近更新 更多