javascript - 我们如何通过不在同一个父元素中使用 jQuery siblings()?

标签 javascript jquery html css

从我下面的无效代码 [1],它可以很好地与 siblings() 一起工作,以在总和或数量大于时禁用其他输入字段最大值,如果所有输入字段都在同一个父元素中。

例如:

<parent>
  <child input>
  <child input>
  <child input>
  <child input>
</parent>

如果您尝试CODE ELEMENT STEPPING到下面的代码,代码可以工作。

代码无效 [1]:

$('.variations input').on('change input mouseup keyup', function() {

  var maxVal = 15; //Here is maximim value
  var sum = 0;

  $('.variations input').each(function() {
    sum += +$(this).val();
  });

  if (sum >= maxVal) { //amount in any fields can't greater than maxVal
    $(this).siblings().not(this).prop('disabled', true);
  } else {
    $(this).siblings().not(this).prop('disabled', false);
  }
});

HTML:
<div class="variations">
  <input type="number" name="sRewards" value="" class="inputReward" />
</div>
<div class="variations">
  <input type="number" name="sReward1" value="" class="inputReward" />
</div>
<div class="variations">
  <input type="number" name="sReward2" value="" class="inputReward" />
</div>
<div class="variations">
  <input type="number" name="sReward3" value="" class="inputReward" />
</div>

所以我想知道我们如何使用 jQuery siblings() 来处理其他子元素。

对于实际情况,我可能会通过使用大量表格元素来调用许多步骤:

https://jsfiddle.net/L01uexv1/1/

如果有人在我的真实情况代码上也建议我,我会更高兴。 多谢!

最佳答案

首先,您必须使用 .parent() 函数并找到 sibling 的所有“输入”元素,然后使用 .prop() 函数禁用它们.

$('.variations input').on('change', function() {

  var maxVal = 15; //Here is maximim value
  var sum = 0;

  $('.variations input').each(function() {
    sum += +$(this).val();
  });

  if (sum >= maxVal) {
    $(this).parent().siblings().find('input').prop('disabled', true);
  } else {
    $(this).parent().siblings().find('input').prop('disabled', false);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="variations">
  <input type="number" name="sRewards" value="" class="inputReward" />
</div>
<div class="variations">
  <input type="number" name="sReward1" value="" class="inputReward" />
</div>
<div class="variations">
  <input type="number" name="sReward2" value="" class="inputReward" />
</div>
<div class="variations">
  <input type="number" name="sReward3" value="" class="inputReward" />
</div>

关于javascript - 我们如何通过不在同一个父元素中使用 jQuery siblings()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729392/

相关文章:

javascript - 可靠的下拉菜单

javascript - 无法单击 selenium webdriver 中的剑道下拉菜单

javascript - 动态路由代码不执行任何操作

jquery - float 列表项带有不需要的垂直间隙

javascript - 在 Javascript 中访问 SVG DOM : object tag vs XMLSerializer?

javascript - Typescript 类在其他类中不可见

javascript - 将 JSON 对象转换为特定格式

javascript - 计算jwysiwyg文本编辑器的字符?

html - 使链接在水平导航栏中居中

php - 重置密码显示布局