#javascript
#javascript
Вопрос:
Я предполагаю, что если пользователь не выбирает строку в таблице, которая возвращает предупреждение с этой информацией следующим образом:
$(document).on("click", ".desativ_forn", function(){
var desaf = document.querySelector('input[name="update"]:checked').value;
if(desaf == null){
alert("Tem de selecionar um Fornecedor!");
$('#minhaDiv44').show();
}else{
}
});
Я также пробовал это так:
$(document).on("click", ".desativ_forn", function(){
if(document.querySelector('input[name="update"]:checked').value == null){
alert("Tem de selecionar um Fornecedor!");
$('#minhaDiv44').show();
}else{
var desaf = document.querySelector('input[name="update"]:checked').value;
}
});
Но вместо возврата предупреждения эта ошибка возвращается на консоль за то, что она не выбрана:
Неперехваченная ошибка типа: не удается прочитать свойство ‘value’ null
Предполагалось, что если ни одна строка не была выбрана, оповещение вернет
HTML:
$(function () {
$('.limp-forn').on("click", function() {
$("#tabfor tbody").empty();
$.getJSON('perfilfor.php', function (data) {
var linha = ``;
for (var i = 0; i < data.length; i ) {
Id = data[i][0];
DataRegisto = data[i][1];
Fornecedor = data[i][2];
Nif = data[i][3];
Contato = data[i][4];
Morada = data[i][5];
Postal = data[i][6];
Email = data[i][7];
Descricao = data[i][8];
Nome = data[i][9];
linha = `<tr class="table__row">
<td class="table__content" data-heading="Atualizar"><input type="radio" name="update" id="update" value="${ Id }"></td>
<td class="table__content" data-heading="Registo"><span style="color:#ffffff">${ DataRegisto }</span></td>
<td class="table__content" data-heading="Fornecedor"><span style="color:#ffffff">${ Fornecedor }</span></td>
<td class="table__content" data-heading="NIF"><span style="color:#ffffff">${ Nif }</span></td>
<td class="table__content" data-heading="Contato"><span style="color:#ffffff">${ Contato }</span></td>
<td class="table__content" data-heading="Morada"><span style="color:#ffffff">${ Morada }</span></td>
<td class="table__content" data-heading="CEP"><span style="color:#ffffff">${ Postal }</span></td>
<td class="table__content" data-heading="Email"><span style="color:#ffffff">${ Email }</span></td>
<td class="table__content" data-heading="Ativo"><span style="color:#ffffff">${ Descricao }</span></td>
<td class="table__content" data-heading="Colaborador"><span style="color:#ffffff">${ Nome }</span></td>
</tr>`;
}
});
});
});
Комментарии:
1. Можете ли вы включить html-код?
2. можете ли вы также поделиться своим HTML?
3.
.querySelector()
возвращаетnull
, когда нет элемента, который соответствовал бы данному селектору, не.value
4. @tonoslfx Я добавил html, который построен с помощью динамической таблицы в js.
5. @Gilang Pratama Я добавил html, который построен с помощью динамической таблицы в js.
Ответ №1:
Попробуйте это:
$(document).on("click", ".desativ_forn", function(){
let desaf = document.querySelector('input[name="update"]:checked');
if(!desaf){
alert("Tem de selecionar um Fornecedor!");
$('#minhaDiv44').show();
}else{
}
})
@Andreas прав. Как он сказал .querySelector()
, вероятно, возвращает значение null, и если мы хотим проверить значение, сначала мы должны проверить, является ли элемент defined
.