在回调中找到父级

时间:2014-06-09 04:53:34

标签: jquery

我有两个不同ID的登录表单(#user-login和#user-login-form)。

其中的表单元素具有相同的ID。用于附加onlick回调如何从任何被调用的父级获取val()值?(即from(“#user-login#edit-name or(”#user-login-form#edit-name)

jQuery('#user-login #edit-submit, #user-login-form #edit-submit').click(

 function(){
 var login = jQuery("#user-login #edit-name").val(); //need #edit-name value from whichever form it is called

不幸的是我尝试了Google,但没有任何有用的信息。

这是html代码:

<form action="/my/node?destination=node" method="post" id="user-login-form" accept-charset="UTF-8">
  <div>
    <div class="form-item form-type-textfield form-item-name">
      <label for="edit-name">Username <span class="form-required" title="This field is required.">*</span></label>
      <input type="text" id="edit-name" name="name" value="" size="15" maxlength="60" class="form-text required">
      <div class="description">please full name ending with</div>
    </div>
    <div class="form-item form-type-password form-item-pass">
      <label for="edit-pass">Password <span class="form-required" title="This field is required.">*</span></label>
      <input type="password" id="edit-pass" name="pass" size="15" maxlength="128" class="form-text required">
    </div>
    <div class="item-list"></div>
    <input type="hidden" name="form_build_id" value="form-8-F0WIjwGaSckitaooI93RGSdaM_WVUE65XaMkn6hy4">
    <input type="hidden" name="form_id" value="user_login_block">
    <div class="form-actions form-wrapper" id="edit-actions">
      <input type="submit" id="edit-submit" name="op" value="Log in" class="form-submit">
    </div>
  </div>
</form>

1 个答案:

答案 0 :(得分:1)

使用$(this).closest('form').find('#edit-name').val()this指的是点击的元素。 .closest('form')会找到最接近的form祖先,.find(...)会找到与选择器匹配的每个后代。

重要提示 ID应在整个页面中唯一。因此,不要使用元素的ID,而是使用类。


我建议您阅读 jQuery教程,详细了解event handling basicsDOMtraversal