2015-07-14 1 views
1

У меня возникли проблемы с выяснением наилучшего способа поперечного перемещения от form в качестве источника и найти входы, которые у ребенка.jquery поперечный для того, чтобы получить детей в пределах ребенка

Heres моя форма:

<form class="ajax-submit-createuser clr mrg-btm-med" method="post" action="./createuser.php"> 
    <table class="fixed"> 
    <tr> 
     <td><p>Enter Username</p></td> 
     <td><input name="formName" type="text" placeholder="Username" autocomplete="off" required /></td> 
    </tr> 
    <tr> 
     <td><p>Enter Email Address</p></td> 
     <td><input name="formEmail" type="email" placeholder="Email Address" autocomplete="off" required /></td> 
    </tr> 
    <tr> 
     <td><p>Enter Password</p></td> 
     <td><input name="formPass" type="password" placeholder="Enter Password" autocomplete="off" required /></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td><button class="trg-createuser btn btn-default"><i class="fa fa-fw fa-plus"></i> Create</button></td> 
    </tr> 
    </table> 
</form> 

Я попытался:

var formname = $(this).closest("input[name=formName]").val(); 

и

var formname = $(this).siblings().siblings("input[name=formName]").val(); 
var formname = $(this).siblings().siblings().siblings("input[name=formName]").val(); 

Но они, кажется, не работает, что это лучший способ пересекающих как это?

+0

Откуда вы должны пройти? –

+2

как бы отключить .find()? – AbeCodes

+0

@AbeCodes, если бы я мог использовать find, любая другая форма с тем же 'input [name]' тоже была бы выбрана? – FileParts

ответ

1

Вы можете использовать find(). Предполагая, что this относится к элементу form, попробуйте следующее:

var formname = $(this).find("input[name=formName]").val(); 

Для справки, closest() будет найти ближайший родительский элемент, соответствующий данной селектор. siblings() используется для поиска элементов с тем же самым родителем, что и текущий, он вообще не поднимается/опускается по DOM.

+0

Эй, спасибо за ответ. Хотя 'find()' работает, не станет ли это проблемой, если бы я, например, имел несколько форм с тем же 'input [name]'. Разве он не получит значения от этих исходных данных, а не из ближайших? – FileParts

+0

Нет, это было бы прекрасно, так как 'find()' ищет только элементы в основном селекторе (в данном случае 'form'). –

+0

Рабочий пример: http://jsfiddle.net/j1zyouu8/ –