【问题标题】:onChange Checkbox Highlight RowonChange 复选框突出显示行
【发布时间】:2018-01-31 05:02:40
【问题描述】:

我正在尝试使用一个我认为非常有用的脚本,但我一定不会得到它。它只是一个简单的复选框,突出显示行类型的脚本,但我在某个地方卡住了。

$(document).ready(function() {
  $("input[type='checkbox']").on('change', function() {
    if ($(this).is(":checked")) {
      $(this).closest('tr').addClass("highlight");

    } else {
      $(this).closest('tr').removeClass("highlight");
    }
  });
});
.highlight {
  background-color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<table>
  <tr>
    <td><input id="checkboxSelect" type="checkbox"></td>
    <td>231540</td>
    <td>2018-02-25 00:00:00</td>
    <td>93.50</td>
  </tr>
  <table>
因此,当检查该特定行的复选框时,我希望能够将类“突出显示”添加到该复选框的表行。

更新 //

我还尝试了以下脚本的建议答案之一:

$("#checkboxSelect").click(function(){
if ($(this).is(":checked")){
 $(this).parent().parent().removeClass("highlight");
 alert('hello');}
else{
$(this).parent().parent().addClass("highlight");
alert('goodbye');}
    });

它仍然不会触发,我已经在 jsFiddle 上对其进行了测试,它确实在那里工作,但在我的环境中它不会触发。

如果它意味着什么,这在技术上就是这些行的生成方式:

$.ajax({
            type:'GET',
            url: '/customers/details/openInvoices',
            dataType:'json',
            data: {
                'customerID': $('select[name=payer_id]').val(),
               '_token': $('input[name=_token]').val(),
            },
                success: function(data) {
                    $('.errorTitle').addClass('hidden');
                    $('.errorContent').addClass('hidden');

                    if ((data.errors)) {
                        setTimeout(function () {
                            $('#createOrigin').modal('show');
                            toastr.error('Check your inputs!', 'Error Alert', {timeOut: 5000});
                        }, 500);

                        if (data.errors.title) {
                            $('.errorTitle').removeClass('hidden');
                            $('.errorTitle').text(data.errors.title);
                        }
                        if (data.errors.content) {
                            $('.errorContent').removeClass('hidden');
                            $('.errorContent').text(data.errors.content);
                        }
                    } else {
                         $.each(data, function(i,val) {
                                    $('<tr>').append(
                                    $('<td>').html('<input type="checkbox" class="checkboxSelect">'),
                                    $('<td>').text(val.pro_number),
                                    $('<td>').text(val.due_date),
                                    $('<td>').text(val.balance)).appendTo('#customerOpenInvoicesTable');
                            $('#openInvoicesOverlay').html('');
                             $('#openInvoicesOverlay').removeClass('overlay');

               });
              }
             }
            });

【问题讨论】:

  • 这似乎已经是正确的
  • 我已经根据您的代码及其工作创建了一个 sn-p。你能重现这个问题吗?
  • 一切都完全一样:/我什至添加了您的选择,以便对行进行明显的样式设置。但是没有添加行类。你有什么建议可以通过替代实现这一目标吗?也许直接在复选框上引用 onChange 事件函数?

标签: javascript jquery html checkbox


【解决方案1】:

使用 jquery..

并且不要忘记添加jquery cdn......

$("#checkboxSelect").click(function(){
if ($(this).is(":checked")){
 $(this).parent().parent().removeClass("highlight")}
else{
$(this).parent().parent().addClass("highlight")}
    });

这样就可以了……

【讨论】:

  • 好吧,我试过你的,但它仍然不会触发。我在应该在的地方添加了两个分号,但我相信这与不识别复选框有关。查看我对问题的修改。
猜你喜欢
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 2018-09-19
相关资源
最近更新 更多