从隐藏div中的输入字段中删除必需的

时间:2013-11-05 00:33:24

标签: jquery forms html input required

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

    <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

2 个答案:

答案 0 :(得分:7)

使用prop()方法,因为required是属性。删除属性后,如果用户切换,则再次变为可见,没有当前机制来跟踪它们被删除的位置。

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

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

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

答案 1 :(得分:2)

删除&#39; required&#39;使用jQuery从元素组或div的所有输入子属性中进行属性,您可以尝试:

$("#hiddenDiv :input").prop('required',null);