为什么我的jquery只按顺序工作?

时间:2020-04-24 01:52:57

标签: jquery

使用JQuery 1.11处理项目。我有多行数据,每行都有两个选择框。在将第一行设置为特定值之前,应禁用每行中的第二个。

我拥有的代码可以工作...但是奇怪的是,仅当您按顺序执行时,它才有效。如果我除了第一个以外的其他任何东西,都不会更新。

有人可以告诉我我做错了什么吗?谢谢!

这是一个小提琴: https://jsfiddle.net/JCOvergaar/xLdp6wgo/9/

为了后代,这是代码:

$(document).on('change', '.ThisFirstThings', function() {

  var dataFlag = $(".ThisFirstThings option:selected").attr('data-flag');
  if (dataFlag == 1) {
    $(this).closest("tr").find(".SecondThing").prop('disabled', false)
  } else {
    $(this).closest("tr").find(".SecondThing").prop('disabled', true)
  }
}).trigger('change');
  <form name="ThisForm" id="ThisForm">
    <div id="divDVT">
      <table>
        <tbody>
          <tr>
            <td>
              <select name="ThisFirstThing_1" id="ThisFirstThing_1" class="ThisFirstThings">
                <option value="106" data-flag="0">No change</option>
                <option value="107" data-flag="0">No change</option>
                <option value="205" data-flag="1">Should Enable -></option>
              </select> </td>
            <td>
              <select name="ThisSecondThing_1" id="ThisSecondThing_1" class="SecondThing" disabled="">
                <option value="43">one thing</option>
                <option value="82">another</option>
              </select> </td>
            <td>
              <input type="Submit" name="ThisSubmit" value="Submit"></td>
          </tr>
          <tr>
            <td>
              <select name="ThisFirstThing_2" id="ThisFirstThing_2" class="ThisFirstThings">
                <option value="106" data-flag="0">No change</option>
                <option value="107" data-flag="0">No change</option>
                <option value="205" data-flag="1">Should Enable -></option>
              </select> </td>
            <td>
              <select name="ThisSecondThing_2" id="ThisSecondThing_2" class="SecondThing" disabled="">
                <option value="43">one thing</option>
                <option value="82">another</option>
              </select> </td>
            <td>
              <input type="Submit" name="ThisSubmit" value="Submit"></td>
          </tr>
        </tbody>
      </table>
    </div>
  </form>

1 个答案:

答案 0 :(得分:0)

尝试更改

var dataFlag = $(".ThisFirstThings option:selected").attr('data-flag');

var dataFlag = $(this).find("option:selected").attr('data-flag');

原始dataFlag正在获取页面中的所有select.ThisFirstThings。 更改目标仅更改了select.ThisFirstThings