【问题标题】:remove required from input fields that are in hidden divs从隐藏 div 中的输入字段中删除 required
【发布时间】:2013-11-05 00:33:24
【问题描述】:

我有一个表单和几个带有一堆输入字段的 div,以及一个显示一个 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>

感谢您的帮助... 多里扬

【问题讨论】:

    标签: jquery forms html input required


    【解决方案1】:

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

    因此,我建议您在所有具有 required 属性的输入中添加一个类 required

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

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

    【讨论】:

    • 有一个更好的功能可以解决这个问题:fieldset:disabled。见:jsfiddle.net/trixta/K8EPm
    • fieldset:disabled 如何替换 :required 的任何验证功能?
    • @davidtallon 禁用字段集中的任何内容都被禁用...禁用控件不提交因此不能被要求
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多