使用jquery验证html输入是否依赖于表中的其他值

时间:2015-04-09 17:37:38

标签: jquery html html5 dom

我正在创建一个试图结合两种形式的条件逻辑的table

1)。 enabling/disabling一个字段取决于该行中另一个< select >的{​​{1}}的{​​{1}}值。

2)。如果未正确填写并dropdown,则使用td方法更改同一字段的CSS。如果它是blur我希望jQuery忽略enabled的有效性,因为它稍后将不会在程序中使用。

我有两个功能可以单独工作,但当我尝试组合它们时,它们无法正常工作。

以下是HTML示例:

disabled

这是基于下拉列表启用/禁用“.packSize”输入的jquery函数:

input

如果输入不是“.packSize”中的数字,那么这是用于更改背景颜色的jquery

<tr class="formulaRow">
   <td>
   <select class="tableDropDown">
       <option value="other">The Manufacturer</option>
       <option value="me">Me</option>
   </select>
   </td>
   <td>
      <input class="packSize" type="number" disabled>
   </td>
</tr>

我也试过用&amp;&amp; if语句中的$(".tableDropDown").on('change', function(){ var packSize = $(this).parents('.formulaRow').find('.packSize'); if ($(this).val() === "me") { $(packSize).prop('disabled', false); } else { $(packSize).prop('disabled', true); } }); 但它也不起作用。

问题在于,如果您停用了$(".packSize").blur(function() { var tableDropDown = $(this).parents(".formulaRow").find(".tableDropDown"); if ($(this).val() ==="" && $(tableDropDown).val() === "me") { $(this).parents("td").addClass("redClass"); } else { $(this).parents("td").removeClass("redClass"); } }); 字段并且附加了$(this).prop("disabled", false)字段,则该字段不会input且仍然有redClass

如果detachred background,我希望redClass自动关闭。

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/Lgyjfq79/

希望这对你有用。

我刚刚再次引用了父td元素并删除了该类。即使它不存在,你仍然可以删除&#34;它

$(".tableDropDown").on('change', function(){
  var packSize = $(this).parents('.formulaRow').find('.packSize');
  if ($(this).val() === "me") {
    $(packSize).prop('disabled', false);
  } else {
    $(packSize).prop('disabled', true);
    $(packSize).parents('td').removeClass("redClass");
  }
  });

$(".packSize").blur(function() {
var tableDropDown = $(this).parents(".formulaRow").find(".tableDropDown");
if ($(this).val() ==="" && $(tableDropDown).val() === "me") {
  $(this).parents("td").addClass("redClass");
}

else {
  $(this).parents("td").removeClass("redClass");
}