在JQuery中选择特定的子元素?

时间:2014-02-02 19:38:10

标签: javascript jquery

我的表单最多可以在页面上出现8次,因此在对象中添加ID不是解决方案。当2个字段相同时,我需要启用提交按钮。 我想不出办法做到这一点。你能帮助我吗?

HTML

<form method="post">
<div class="form-group">
    <label for="pass1">New Password:</label>
    <input type="password" class="form-control" name="pass1" placeholder="Pa55word">
</div>
<div class="form-group">
    <label for="pass2">Retype Password:</label>
    <input type="password" class="form-control" name="pass2" placeholder="Pa55word">
</div>
</div>
<div class="modal-footer">
    <input type="submit" name="subpass" class="btn btn-primary disabled" value="go" />
</form>

的JavaScript

$('form input[type="password"]').keyup(function () {
if($(this.???)){
   $(this.???)removeClass('disabled')
}
});

JsFiddle Link

3 个答案:

答案 0 :(得分:1)

您可以使用:

$('form input[type="password"]').keyup(function () {
  var form = $(this).closest('form');
  if(form.find('input[type="password"]').first().val() === 
     form.find('input[type="password"]').last().val()){
    form.find('input[type="submit"]').removeAttr('disabled'); //or remove class
  } else {
    form.find('input[type="submit"]').attr('disabled', ''); //disable the button
  }
});

以下是JSFiddle http://jsfiddle.net/3uURp/3/

中的一个示例

以下是一起使用少量表单http://jsfiddle.net/3uURp/6/

的方法

答案 1 :(得分:0)

工作示例:

$('form input[type="password"]').keyup(function () {
    var $this = $(this);
    var $parent = $this.closest("div");
    if( $this.val() == $this.closest("form").find("div.form-group").not($parent).find("input").val() ){
       console.log("equals");
    } else {
        console.log("not equals");
    }
});

JSFIDDLE

答案 2 :(得分:0)

尝试this

$('form input[type="password"]').keyup(function () {
  var form = $(this).closest('form')
  var pass1 = form.find('input[name=pass1]')
  var pass2 = form.find('input[name=pass2]')
  var submit = form.find('input[type=submit]')

  var condition = pass1.val().length == 0 || (pass1.val() != pass2.val())
  submit.attr("disabled", condition)
});