Проверка начальной загрузки для выбора в зависимости от того, что выбрано в первом выборе? - PullRequest
0 голосов
/ 08 февраля 2019

У меня выпадающий список с работающей проверкой начальной загрузки, если пользователь ничего не выбирает.Но я хочу проверить разные (обязательные) варианты выбора в зависимости от того, что выбрал пользователь при первом выборе.

<select class="custom-select d-block w-100 mb-4" id="case-select" name="case-select" required>
    <option value="">Select case</option>
    <option class="case" value="A">Case 1</option>
    <option class="case" value="B">Case 2</option>
    <option class="case" value="C">Case 3</option>
    <option class="case" value="D">Case 4</option>
    <option class="case" value="E">Case 5</option>
    <option class="case" value="F">Case 6</option>
</select>

Я отображаю новые флажки в зависимости от того, что выбрал пользователь.

$('.cases').hide();
$('#' + $(this).val()).show();

<div class="cases" id="A">
    <select>
        <option>0</option>
        <option>1</option>
        <option>2</option>
    </select>
</div>

<div class="cases" id="B">
    <select>
        <option>3</option>
        <option>4</option>
        <option>5</option>
     </select>
</div>

Нокак мне это проверить?Если пользователь выбирает A в первом выпадающем меню, я хочу подтвердить, что он выбирает 0, 1 или 2 из div с идентификатором A (мне все равно, 3,4 och 5).Но если они выбирают B в первом флажке, я хочу подтвердить, что они выбирают 3, 4 или 5 из идентификатора div B.

Если пользователь выбирает A из первого раскрывающегося списка.Они должны выбрать что-то из выпадающего списка в div с идентификатором A.

1 Ответ

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

Использование Bootstrap 4

Different Option Selection on Parent Select

Исходный код

function disableEachSelectChildren() {
	$(".case").each(function (index, obj) {
		$(this).children("select:first-child").attr("disabled", "");
	});
}

$(document).ready(function () {
	disableEachSelectChildren();

	$("#case-select").change(function () {
		disableEachSelectChildren();
		let selectedCaseValue = $("#case-select").find(":selected").attr("value");
		if (selectedCaseValue) {
			$("#" + selectedCaseValue).children("select:first-child").removeAttr("disabled");
		}
	});
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container-fluid bg-light">
	<div class="col-12 my-3 pt-4 pb-2">

		<div class="row">
			<select class="custom-select d-block w-100 mb-2" id="case-select" name="case-select" required>
				<option value="">Select case</option>
				<option class="cases" value="A">Case 1</option>
				<option class="cases" value="B">Case 2</option>
				<option class="cases" value="C">Case 3</option>
				<option class="cases" value="D">Case 4</option>
				<option class="cases" value="E">Case 5</option>
				<option class="cases" value="F">Case 6</option>
			</select>
		</div>

		<div class="row">
			<div class="case col-6 col-lg-2 py-3 text-center" id="A">
				A <select class="w-100 border border-dark">
					<option>0</option>
					<option>1</option>
					<option>2</option>
				</select>
			</div>

			<div class="case col-6 col-lg-2 py-3 text-center" id="B">
				B <select class="w-100 border border-dark">
					<option>3</option>
					<option>4</option>
					<option>5</option>
				</select>
			</div>

			<div class="case col-6 col-lg-2 py-3 text-center" id="C">
				C <select class="w-100 border border-dark">
					<option>6</option>
					<option>7</option>
					<option>8</option>
				</select>
			</div>

			<div class="case col-6 col-lg-2 py-3 text-center" id="D">
				D <select class="w-100 border border-dark">
					<option>9</option>
					<option>10</option>
					<option>11</option>
				</select>
			</div>

			<div class="case col-6 col-lg-2 py-3 text-center" id="E">
				E <select class="w-100 border border-dark">
					<option>12</option>
					<option>13</option>
					<option>14</option>
				</select>
			</div>

			<div class="case col-6 col-lg-2 py-3 text-center" id="F">
				F <select class="w-100 border border-dark">
					<option>15</option>
					<option>16</option>
					<option>17</option>
				</select>
			</div>
		</div>

	</div>
</div>

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...