8

我有一个表单和几个带有一堆输入字段的 div,以及一个显示一个 div 并隐藏所有其他字段的选择字段。在那些输入字段中,我有 html5 required 标签。我想从隐藏 div 中的所有输入字段中删除必需的标签。我怎样才能做到这一点?这是我用于显示/隐藏 div 的 js,具体取决于我的选择:

    <script>
function changeGroup(e) {
    /*
        1 - Remove all group classes
        2 - Add the currently selected group class
    */
    $("#main")
        .removeClass(allGroups)
        .addClass($("option:selected", e.target).val())     
}

/* 
    1 - Bind changeGroup function to "change" event
    2 - Fetch all group from the select field 
*/
var allGroups = $("select")
    .change(changeGroup)
    .find("option")
        .map(function() {
            return $(this).val();
        })
        .get()
        .join(' ');


</script>

谢谢你的帮助... Dorijan

4

2 回答 2

10

将使用prop()方法,因为required它是一个属性。一旦您删除该属性,那么如果用户切换以便再次可见,则没有当前机制来跟踪它们被删除的位置。

出于这个原因,我建议您required为所有具有required属性的输入添加一个类。

$('.required').prop('required', function(){
   return  $(this).is(':visible');
});

这将遍历所有类required并根据可见性调整属性

于 2013-11-05T02:40:25.460 回答
2

要使用 jQuery 从元素组或 div 的所有输入子项中删除“必需”属性,您可以尝试以下操作:

$("#hiddenDiv :input").prop('required',null);
于 2014-05-29T13:29:43.920 回答