我的联系表单有一些div框,隐藏或显示下拉列表。我在这个div中使用了必需的标记。问题是当其中一个需要的标签在隐藏的div中时我无法提交表格我该怎么办?
$(document).ready(function() {
$("#Color").change(function() {
$(this).find("option:selected").each(function() {
if ($(this).attr("value") == "redd") {
$(".box").not(".redd").hide();
$(".redd").show();
} else if ($(this).attr("value") == "greenn") {
$(".box").not(".greenn").hide();
$(".greenn").show();
} else {
$(".box").hide();
}
});
}).change();
$("#ddColor").change(function() {
$(this).find("option:selected").each(function() {
if ($(this).attr("value") == "red") {
$(".inner-box").not(".red").hide();
$(".red").show();
} else if ($(this).attr("value") == "green") {
$(".inner-box").not(".green").hide();
$(".green").show();
} else {
$(".inner-box").hide();
}
});
}).change();
});

.inner-box {
border: 2px solid;
height: 30px;
background-color: yellow;
}
.green {
background-color: green;
}
.red {
background-color: red;
}

<div>
<fieldset>
<p dir="rtl">
<label>case1</label>
<select id="Color" required="required">
<option>please select</option>
<option value="redd">home
<option>
<option value="greenn">laptop</option>
</select>
</p>
</fieldset>
</div>
<div class="redd box">
<div>
<fieldset>
<p dir="rtl">
<label>case2</label>
<select id="ddColor" required="required">
<option>please select</option>
<option value="red">sell
<option>
<option value="green">rent</option>
</select>
</p>
</fieldset>
</div>
<div class="red inner-box">
<input dir="rtl" type="text" name="pricerange" required />
</div>
<div class="green inner-box">
<input dir="rtl" type="text" name="rentrange" required/>
</div>
</div>
<div class="greenn box">
<input dir="rtl" type="text" name="ramrange" required/>
</div>
&#13;
答案 0 :(得分:0)
要删除attr,您可以使用:
$('#id').removeAttr('required');
答案 1 :(得分:0)
您需要在隐藏时将sendto
设置为required
,并在显示时再次设置false
。如果显示这些div中的{{1>} 全部,则很容易:
以true
div为例:
隐藏:
inputs
显示:
.redd
如果只需要部分,您就会想要记住他们的旧设置,然后重新应用它:
隐藏:
$(".redd").hide().find("input").prop("required", false);
显示:
$(".redd").show().find("input").prop("required", true);
如果您从标记中隐藏了一些内容,那么您应该在执行任何$(".redd").hide().find("input").each(function() {
var $input = $(this);
$input.data("was-required", $input.prop("required"));
$input("required", false);
});
操作之前执行此操作:
$(".redd").show().find("input").each(function() {
var $input = $(this);
$input.prop("required", $input.data("was-required"));
});
...初始化旗帜。如果他们都开始展示,你不需要,因为&#34;隐藏&#34;上面的行动将会。