2013-02-23 40 views
0

我繼承了幾個形式:如何更改jquery中所有表單輸入的屬性?

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

任何想法?

回答

2

$(this).parent()其實是一個<td>,所以它什麼都沒有返回。

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

看起來不起作用 – Patrioticcow 2013-02-23 01:29:08

+0

你使用的是什麼版本的jQuery? http://jsbin.com/oyadex/1/edit – 2013-02-23 01:31:47

+0

jquery-1.8.2.min.js – Patrioticcow 2013-02-23 01:32:36

0
$('#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是直系孩子,不是大孩子。

+0

似乎不起作用 – Patrioticcow 2013-02-23 01:29:52

+0

@Patrioticcow我注意到你有另一個問題編輯'作爲ID不止一次 – marteljn 2013-02-23 01:32:21

相關問題