Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JQuery中选择特定的子元素?_Javascript_Jquery - Fatal编程技术网

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

Javascript 在JQuery中选择特定的子元素?,javascript,jquery,Javascript,Jquery,我有一个表单,在一个页面上最多可以出现8次,因此将ID添加到对象中不是一个解决方案。当两个字段相同时,我需要启用submit按钮。 我想不出一个办法来做这件事。你能帮我吗 HTML <form method="post"> <div class="form-group"> <label for="pass1">New Password:</label> <input type="password" class="form-co

我有一个表单,在一个页面上最多可以出现8次,因此将ID添加到对象中不是一个解决方案。当两个字段相同时,我需要启用submit按钮。 我想不出一个办法来做这件事。你能帮我吗

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>
您可以使用:

$('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
  }
});
下面是JSFIDLE中的一个示例

下面是它如何同时处理几个表单的工作示例:

$('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");
    }
});
试试:


您可以比较输入的值。通过
$(this.val()
或(非jQuery)
this.value
检索它们。如果可以的话,您只是有一些无效的标记。在这里,它应该工作。问题是有一个错误和缺失。见:
$('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");
    }
});
$('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)
});