【问题标题】:Bootstrap validation to select depending whats selected in the first select?引导验证以根据第一次选择中选择的内容进行选择?
【发布时间】:2019-07-02 21:14:45
【问题描述】:

如果用户不选择任何内容,我将有一个带有有效引导验证的下拉菜单。但我想根据用户在第一次选择中选择的内容来验证不同的(必需的)选择。

<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,我想验证他们从 id A 的 div 中选择 0、1 或 2(我不关心 3,4 och 5)。 但是,如果他们在第一个复选框中选择 B,我想验证他们从 div id B 中选择了 3、4 或 5。

如果用户从第一个下拉菜单中选择 A。他们需要从 id 为 A 的 div 的下拉列表中选择一些内容。

【问题讨论】:

  • 希望答案对您有所帮助。

标签: jquery forms validation bootstrap-4


【解决方案1】:

使用Bootstrap 4

源代码

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>

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多