jQuery-搜索或排序后最近的TD值



我有一个模态窗口,该窗口弹出并在表中显示供应商列表。每行都有一个"选择"按钮,该按钮可以从该行中选择数据,然后使用TD的值更新父页面上的某些表单输入字段。

这可以正常工作,直到我首先使用数据表搜索或列进行排序。
如果我搜索或排序此表,然后使用"选择"按钮,则未分配数据。

再次工作正常,只有在我使用内置数据表搜索/首先进行搜索或排序时,它才会破裂。

$(document).ready(function () {
    $(".select-vendor").click(function () {
        var $row = $(this).closest("tr");    // Find the row
        var $tds = $row.find("td");
        console.log($row);
        $.each($tds, function () {
            document.forms["myForm"]["vendNameAddr"].value = $row.find('#vendNameAddrSearch').val();
            document.forms["myForm"]["vendPhone"].value = $row.find('#vendPhoneSearch').val();
            document.forms["myForm"]["vendEmail"].value = $row.find('#vendEmailSearch').val();
        });
    });
});
echo '<tr><td><input type="hidden" name="vendNameAddrSearch" id="vendNameAddrSearch" value="' . $vendorinfo . '"><input type="hidden" name="vendPhoneSearch" id="vendPhoneSearch" value="' . $res->phonenumber . '"><input type="hidden" name="vendEmailSearch" id="vendEmailSearch" value="' . $res->emailaddress . '"><button type="button" class="select-vendor" onclick="document.getElementById('vendorModal').style.display='none'">Select</button></td><td>' . $res->vendorname . '</td><td>' . $res->address1 . '</td><td>' . $res->address2 . '</td><td>' . $res->city . '</td><td>' . $res->state . '</td><td>' . $res->zip . '</td><td>' . $res->country . '</td></tr>';

您可能已经重复了ID。将所有ID更改为课程,并使用您启动的相对地址

$(".select-vendor").on("click", function() {
  $('#vendorModal').hide();
  var $row = $(this).closest("tr"); // Find the row
  $row.find(".vendNameAddr").val($row.find('.vendNameAddrSearch').val());
  $row.find(".vendPhone").val($row.find('.vendPhoneSearch').val());
  $row.find(".vendEmail").val($row.find('.vendEmailSearch').val());
});
<tr>
  <td><input type="hidden" name="vendNameAddrSearch" class="vendNameAddrSearch" value="$vendorinfo">
    <input type="hidden" name="vendPhoneSearch" class="vendPhoneSearch" value="$res-phonenumber">
    <input type="hidden" name="vendEmailSearch" class="vendEmailSearch" value="$res-emailaddress">
    <button type="button" class="select-vendor">Select</button></td>
  <td>$res-vendorname</td>
  <td>$res-address1</td>
  <td>$res-address2</td>
  <td>$res-city</td>
  <td>$res-state</td>
  <td>$res-zip</td>
  <td>$res-country</td>
</tr>

弄清楚了问题。一旦我用:

包装了OnClick方法

" fndrawcallback":function(osettings){}

现在,它在每次重新绘制后获取新的行数据。

最新更新