JQuery, как отключить тд - PullRequest
       9

JQuery, как отключить тд

0 голосов
/ 26 февраля 2019

У меня есть следующая таблица

 <c:forEach items="${tablaserie.matriculas}" var="matricula" varStatus="loopmatricula">
    <input type="hidden" id="<c:out value="matricula-${loopmatricula.index}" />" value="<c:out value="${matricula.matricula}" />" />
    <tr>
    <td style="text-align:center"><c:out value="${matricula.matricula}" /></td>
        <c:set var="numeroceldas" value="${0}" />
        <c:forEach items="${matricula.listado}" var="celda" varStatus="loopcelda">
            <c:set var"identificadorcelda" value="${matricula.matricula}-${loopcelda.index}" />

            <c:choose>
                <c:when test="${celda.color eq '#ffffff' }" >       
                    <td  id="td-${identificadorcelda}" style="text-align:center;" onclick="displayCombo();" ><c:out value="${celda.nombre}" /></td>     
                    <input id="input-${identificadorcelda}" type="hidden" value="<c:out value="${celda.nombre}" />" />              
                </c:when>
                <c:otherwise>
                    <td  id="td-${identificadorcelda}" style="color:white;text-align:center;" bgcolor="<c:out value="${celda.color}"/>"  onclick="displayCombo();">
                        <c:out value="${celda.nombre}" />
                    </td>
                    <input id="input-${identificadorcelda}" type="hidden" value="<c:out value="${celda.nombre}" />" />      

                </c:otherwise>
            </c:choose>
    /c:forEach>
</tr>
</c:forEach>

Я хочу отключить td.Имена td:

 id="td-${identificadorcelda}"

В $(document).ready() у меня есть

if (tipoedicion == 0){
            $("td[id*=td]").prop('disabled', true);

        }
        else {
            $("td[id*=td]").prop('disabled',false);
        }

ТД не отключается, и я могу нажать на них.

Как я могу отключить тд?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Поскольку td на самом деле не имеет атрибута disabled, если вы хотите, чтобы событие click не делало то, что оно делает, вы можете вместо этого установить пользовательский атрибут data-disabled в свои td s..

Таким образом, в вашем $(document).ready() вы можете сделать что-то подобное

if (tipoedicion == 0){
        $("td[id*=td]").attr('data-disabled', 'true');

    } else {
        $("td[id*=td]").attr('data-disabled', 'false');
    }
    // ...
}

Затем, в вашей функции displayCombo() вы можете проверить этот атрибут и просто вернуть, если td имеетэтот атрибут установлен на "true", например

function displayCombo() {
    if ($("td[id*=td]").attr('data-disabled') === 'true') {
        return;
    }
    // whatever it was doing before
}
0 голосов
/ 26 февраля 2019

тд не имеет отключенного атрибута.Используется для элементов ввода.Вы можете скрыть курсор мыши на тд и отключить выбор.Это заставит его работать как отключенный

$(document).ready(function() {
  $("#a").prop("disabled", true);
  $('#b').css({
    'cursor': 'none',
    'user-select': 'none'
  });
  $('#b').click(function(){return false})

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <td id="b">sss</td>
</table>
<input id="a">
...