我有两个不同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>
答案 0 :(得分:1)
使用$(this).closest('form').find('#edit-name').val()
。 this
指的是点击的元素。 .closest('form')
会找到最接近的form
祖先,.find(...)
会找到与选择器匹配的每个后代。
重要提示 ID应在整个页面中唯一。因此,不要使用元素的ID,而是使用类。
我建议您阅读 jQuery教程,详细了解event handling basics和DOMtraversal。