我设法执行复选框列表,使得在单击复选框时显示和隐藏下拉选项,当我不选中任何复选框时,基本下拉选项将仅显示,并且需要选择下拉选项在点击提交之前。
问题是当选中任何复选框时,基本下拉选项变为隐藏,其他下拉选项显示,但是当点击提交按钮时,浏览器外面的消息pupup显示仍然需要字段,其中隐藏下拉选项。
我希望隐藏这些下拉选项时不需要。
这是复选框的代码:
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j(':checkbox').bind('change', function() {
var thisClass = $j(this).attr('class');
if ($j(this).attr('checked')) {
$j(':checkbox.' + thisClass + ":not(#" + this.id + ")").removeAttr('checked');
}
else {
$j(this).attr('checked', false);
$j('.main-options').show();
$j('.first-image').show();
$j('.hide-onload').hide();
}
});
});
,这是显示/隐藏的代码:
$j(document).ready(function(e) {
$j('.roundedOne').each(function(index, element) {
$j(this).click(function(){
$j('.main-options').hide();
$j('.first-image').hide();
$j('.hide-onload').hide();
$j('.changing-options').eq(index).show();
$j('.changing-image').eq(index).show();
});
});
});
我希望我很清楚。
答案 0 :(得分:0)
使用jquery尝试此解决方案。
... find('input,textarea,select')您可以添加更多需要在表单内浏览的元素
$('form#csf3SubmitForm').find('input, textarea, select').each(function(){
if($(this).prop('required') && $(this).is(":hidden") && $(this).val() === ""){
console.log("before -- IS REQUIRED >>> " + $(this).prop('required') + " -- ID >>> " + $(this).attr("id") + " " + "VALUE >>> " + $(this).val());
$(this).prop("required", false);
console.log("after -- IS REQUIRED >>> " + $(this).prop('required') + " -- ID >>> " + $(this).attr("id") + " " + "VALUE >>> " + $(this).val());
}
});
如果表单上有许多字段,并且忘记添加进一步的验证以使“不需要”字段不可见,则可以遍历您内部的所有字段并检查哪些是必需字段,哪些不可见...
将这些元素设置为required = false。您可以在条件中添加更多内容,以特定于要禁用的一个或多个字段。
希望这会有所帮助并给出一个想法。这是一种解决方法。