#jquery #laravel
#jquery #laravel
Вопрос:
У меня есть таблица, которая заполняется из базы данных.
@foreach ($cabinclist as $item)
<tr>
<input type="hidden" name="" value="{{$item->checklist_id}}" class="clistid">
<td scope="row">{{$item->rownum}}</td>
<td>{{$item->cdescription}}</td>
<td><input type="checkbox" class="cbisactive"></td>
<td>
<select style="width: 100%; border:0px;background: none;outline:none;" class="cbcond">
<option selected="selected"></option>
<option value="OK">OK</option>
<option value="N/A">N/A</option>
<option value="Damage">Damage</option>
<option value="Missing">Missing</option>
</select>
</td>
</tr>
@endforeach
Я просто хочу получить все значения данных таблицы, включая выбранный элемент в select
теге и checkbox
ввод.
Что я сделал до сих пор (перепробовал все ответы здесь, в stackoverflow):
var cbarry = [];
$("#cabintable > tbody > tr").each(function () {
var checkBox = $(this).find('td .isactive > input').eq(2);
checkBox.prop('checked',!checkBox.prop('checked'));
cbarry.push(
{
"clist": $(this).find('td').eq(1).text(), //this is correct
"cbisactive": checkBox, //i want to get the checkbox state but its not workin
"cbcond": $(this).find('td').eq(3).html() // and also the value of the selected item.
});
console.log(cbarry);
});
Консоль возвращает undefined.
PS: Таблица является динамической и заполняется из базы данных. после переноса данных таблицы в массив я вставлю их в другую таблицу.
Ответ №1:
Вы можете получить состояние флажков, просто используя is(":checked")
this will return true
или false
в зависимости от состояния флажков.Кроме того, для получения значения выбора .val()
это даст вам selected
значение.
Демонстрационный код :
var cbarry = [];
$("button").click(function() {
$("#cabintable > tbody > tr").each(function() {
cbarry.push({
"clist": $(this).find('td').eq(1).text(),
"cbisactive": $(this).find(".cbisactive").is(":checked"), //get checked values
"cbcond": $(this).find('.cbcond').val() //get slect value
});
});
console.log(cbarry);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="cabintable">
<tbody>
<tr>
<input type="hidden" name="" value="1" class="clistid">
<td scope="row">1</td>
<td>Soemthing</td>
<td><input type="checkbox" class="cbisactive"></td>
<td>
<select style="width: 100%; border:0px;background: none;outline:none;" class="cbcond">
<option selected="selected"></option>
<option value="OK">OK</option>
<option value="N/A">N/A</option>
<option value="Damage">Damage</option>
<option value="Missing">Missing</option>
</select>
</td>
</tr>
<tr>
<input type="hidden" name="" value="2" class="clistid">
<td scope="row">2</td>
<td>something2</td>
<td><input type="checkbox" class="cbisactive"></td>
<td>
<select style="width: 100%; border:0px;background: none;outline:none;" class="cbcond">
<option selected="selected"></option>
<option value="OK">OK</option>
<option value="N/A">N/A</option>
<option value="Damage">Damage</option>
<option value="Missing">Missing</option>
</select>
</td>
</tr>
<tr>
<input type="hidden" name="" value="3" class="clistid">
<td scope="row">3</td>
<td>soemthing 3</td>
<td><input type="checkbox" class="cbisactive"></td>
<td>
<select style="width: 100%; border:0px;background: none;outline:none;" class="cbcond">
<option selected="selected"></option>
<option value="OK">OK</option>
<option value="N/A">N/A</option>
<option value="Damage">Damage</option>
<option value="Missing">Missing</option>
</select>
</td>
</tr>
</tbody>
</table>
<button>Click me </button>