2013-02-23 2 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

+0

Какую версию jQuery вы используете? http://jsbin.com/oyadex/1/edit –

+0

jquery-1.8.2.min.js – Patrioticcow

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 прямые дети не внушительные дети.

+0

, похоже, не работает – Patrioticcow

+0

@Patrioticcow Я заметил еще одну проблему, 'edit' как идентификатор более одного раза – marteljn