Javascript Webshim:如果选择了radiobutton,则验证复选框组(jquery mobile)

Javascript Webshim:如果选择了radiobutton,则验证复选框组(jquery mobile),javascript,validation,webshim,Javascript,Validation,Webshim,有两个单选按钮。如果选择了第二个选项,则会显示带有一组复选框的div。在这种情况下,需要选择一个复选框。但如果选择了第一个单选按钮,则带有复选框SES的div将不可见,但仍会显示验证消息 <script> webshims.setOptions('wspopover', { appendTo: 'body' }); $.webshims.activeLang("sv"); $.webshims.setOptions('forms

有两个单选按钮。如果选择了第二个选项,则会显示带有一组复选框的div。在这种情况下,需要选择一个复选框。但如果选择了第一个单选按钮,则带有复选框SES的div将不可见,但仍会显示验证消息

        <script>
        webshims.setOptions('wspopover', { appendTo: 'body' });
        $.webshims.activeLang("sv");
    $.webshims.setOptions('forms', {
        replaceValidationUI: true,
        addValidators: true,
        customMessages: true
    });
    $.webshims.setOptions('forms-ext', {
        replaceUI: true
    });
    $.webshims.polyfill('forms forms-ext');
    </script>

<input id="PersonOrCostDiv1" class="user-success" type="radio" required="" value="1" name="Level" data-cacheval="false">
<input type="radio" id="PersonOrCostDiv2" name="Level" required="" value="2" data-cacheval="false" class="user-success">

<input type="checkbox" data-dependent-validation='{"from": "PersonOrCostDiv2", "prop": "required", "from-prop": "value:2"}' value="100000001" id="checkbox-group100000001" class="group-required user-error" name="SelectedCostDivisions" aria-invalid="true">
<input type="checkbox" data-dependent-validation="'{"from": "PersonOrCostDiv2", "prop": "required", "from-prop": "value:2"}' value="100000004" id="checkbox-group100000004" class="group-required user-error" name="SelectedCostDivisions" aria-invalid="true">

setOptions('wspoover',{appendTo:'body'});
$.webshims.activeLang(“sv”);
$.webshims.setOptions('forms'{
replaceValidationUI:true,
addValidators:对,
自定义消息:正确
});
$.webshims.setOptions('forms-ext'{
replaceUI:对
});
$.webshims.polyfill('forms ext');

是的,依赖数据的验证规则中有一个小错误。原因是,data depnendent验证实际上不是customValidity修饰符,而是常规属性修饰符,即使控件被其他规则无效,也必须执行该修饰符。(在您的案例组中需要)。我已经解决了这个问题()

但是你应该做的有点不同。与使用依赖于数据的验证='{“from”:“PersonOrCostDiv2”,“prop”:“required”,“from prop”:“value:2”}不同,您只需使用:依赖于数据的验证=“PersonOrCostDiv2”。这将自动检查控件是否已选中,并将禁用/启用表单控件。您的HTML将如下所示(更简单!)


如果这没有帮助,请随时再次询问

谢谢!OT:真的很难知道你们什么时候发布新版本。在zip文件旁边未找到任何新闻/下载页。但是它没有任何版本号。尝试了使用$.prop的不同方法(字段集,'disabled',true/false)。但是没办法让它工作。它可能是jquery移动设备吗?它的状态与我的观点相同。我唯一能做的就是在每次输入时将它们设置为readOnly true/false$(“#元素”).get(0.readOnly=true/false;
<form>
    <input id="PersonOrCostDiv1" class="user-success" type="radio" required="" value="1" name="Level" data-cacheval="false">
    <input type="radio" id="PersonOrCostDiv2" name="Level" required="" value="2" data-cacheval="false">
    <fieldset data-dependent-validation="PersonOrCostDiv2">
        <input type="checkbox" value="100000001" id="checkbox-group100000001" class="group-required" data-errormessage="Please check on this group" name="SelectedCostDivisions">
        <input type="checkbox" value="100000004" id="checkbox-group100000004" name="SelectedCostDivisions">
    </fieldset>
    <input type="submit" />
</form>
webshims.ready('form-validators', function(){ 
    webshims.customErrorMessages['group-required'].sv = "you really have to check on of these controls";
});