我正在设计Amazon Mechanical Turk上的一个项目。我想从验证中排除隐藏的元素。这是我的项目设计的一部分:
function hidedivs(id){
document.getElementById(id).style.visibility ='hidden';
}
function showdivs(id){
document.getElementById(id).style.visibility = 'visible';
}
.visible {
visibility: visible;
}
.invisible {
visibility: hidden;
}
<div class="form-group"><label name="Q1">1. Do you understand the paragraph?</label>
<label><input name="q1ans" onclick="showdivs('div1');" required="" type="radio" value="yes" />Yes</label>
<label><input name="q1ans" onclick="hidedivs('div1'); hidedivs('div2');" type="radio" value="no" />No</label>
</div>
<div class="form-group invisible" id="div1"><label name="Q2">2. Here is my second question?</label>
<label><input name="q2ans" required="" type="radio" value="yes" /> Yes </label>
<label><input name="q2ans" type="radio" value="no" /> No </label>
</div>
当我为第一个问题选择“否”时,无法提交表格。我认为这是因为验证者仍在处理隐藏的问题。 我尝试使用欧芹命令。例如,我包含以下片段,但它们不起作用: 试用1。
$(function () {
$('#mturk_form').parsley().on('field:validated', function() {
if ($(fieldInstance.$element.style.visibility) == "hidden"){
fieldInstance.validationResult = true;
return true;
}
});
});
试用2。
window.ParsleyConfig = {
excluded: 'input[type=button], input[type=submit], input[type=reset], :hidden'
};
$("#mturk_form").parsley();
有什么想法吗?