如何解决如何仅启用相关行的按钮?
我有一张表,主体正在使用 foreach 循环。
### numerical derivative for gnuplot 4.2.6
reset
DATA = "Data.dat"
set table DATA
set samples 150
plot sin(x)/x
unset table
TEMP1 = "temp1.dat"
TEMP2 = "temp2.dat"
set table TEMP1
plot DATA u 1:2 every ::1
unset table
system(sprintf('paste %s %s > %s',DATA,TEMP1,TEMP2))
x0(col) = (column(col)+column(col+3))/2.
dx(col) = (column(col+3)-column(col))/2.
dy(col) = (column(col+3)-column(col))/2.
plot DATA u 1:2 w lp pt 7 title "Data",\
TEMP2 u (x0(1)):(dy(2)/dx(1)) w lp pt 7 title "1st Derivative"
### end of code
对于我做的 javascript:
<?PHP foreach ($list as $test) : ?>
<tr>
<td>
<?= form_open_multipart('/test/update/' . $test['id'],['class' => 'needs-validation','novalidate' => '']); ?>
<?= form_dropdown(
'something',$option,$test['smt'],['required' => '','id' => 'smt2','class' => 'd-block col-12 form-control']
); ?>
</td>
<td align="right"><button class="btn btn-success btn-sm" type="submit" id="submit" disabled>SAVE UPDATE</a></td>
<?= form_close(); ?>
</tr>
<?PHP endforeach; ?>
当用户更改下拉列表的值时,将启用“保存更新”按钮。现在,如果用户在任何下拉列表中更改,无论在哪一行,所有按钮都将被启用。 我希望仅启用更改下拉列表的行中的保存按钮。
解决方法
您需要使用 DOM 遍历来查找与引发 button
事件的 select
相关的 change
。您可以使用传递给处理程序函数的事件获取对 button
的引用。从那里您可以使用 tr
和 closest()
获得最近的公共 find()
。试试这个:
jQuery($ => {
$('select').on('change',e => {
$(e.target).closest('tr').find('button').prop('disabled',false);
});
});
注意使用 prop()
来设置 disabled
标志而不是 attr()
。最好尽可能使用 prop()
,因为它可以避免不必要的 DOM 访问,从而提高性能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。