jQuery的。提交时删除隐藏元素上的“必需”

时间:2014-02-16 01:52:43

标签: jquery drop-down-menu required

我设法执行复选框列表,使得在单击复选框时显示和隐藏下拉选项,当我不选中任何复选框时,基本下拉选项将仅显示,并且需要选择下拉选项在点击提交之前。

问题是当选中任何复选框时,基本下拉选项变为隐藏,其他下拉选项显示,但是当点击提交按钮时,浏览器外面的消息pupup显示仍然需要字段,其中隐藏下拉选项。

我希望隐藏这些下拉选项时不需要。

这是复选框的代码:

     var $j = jQuery.noConflict();


    $j(document).ready(function(){
        $j(':checkbox').bind('change', function() {
            var thisClass = $j(this).attr('class');
            if ($j(this).attr('checked')) {
                $j(':checkbox.' + thisClass + ":not(#" + this.id + ")").removeAttr('checked');
            }
            else {
                $j(this).attr('checked', false);
                $j('.main-options').show();
                $j('.first-image').show();
                $j('.hide-onload').hide();
            }
        });
    });

,这是显示/隐藏的代码:

    $j(document).ready(function(e) {
        $j('.roundedOne').each(function(index, element) {
            $j(this).click(function(){
                $j('.main-options').hide();
                $j('.first-image').hide();
                $j('.hide-onload').hide();

                $j('.changing-options').eq(index).show();
                $j('.changing-image').eq(index).show();
            });
        });
    });

我希望我很清楚。

1 个答案:

答案 0 :(得分:0)

使用jquery尝试此解决方案。

... find('input,textarea,select')您可以添加更多需要在表单内浏览的元素

$('form#csf3SubmitForm').find('input, textarea, select').each(function(){
     if($(this).prop('required') && $(this).is(":hidden") && $(this).val() === ""){
         console.log("before -- IS REQUIRED >>> " +  $(this).prop('required') + " -- ID >>> " + $(this).attr("id") + " " + "VALUE >>> "  + $(this).val());
         $(this).prop("required", false);
         console.log("after -- IS REQUIRED >>> " +  $(this).prop('required') + " -- ID >>> " + $(this).attr("id") + " " + "VALUE >>> "  + $(this).val());
     }
 });

如果表单上有许多字段,并且忘记添加进一步的验证以使“不需要”字段不可见,则可以遍历您内部的所有字段并检查哪些是必需字段,哪些不可见...

将这些元素设置为required = false。您可以在条件中添加更多内容,以特定于要禁用的一个或多个字段。

希望这会有所帮助并给出一个想法。这是一种解决方法。