javascript - 如何验证元素是否显示?

标签 javascript jquery twitter-bootstrap-3 jqbootstrapvalidation

我有两个元素的形式,第一个元素始终是必需的,而第二个元素取决于第一个元素的值,因此如果第一个元素的值等于 Fashion DesignersFashion Illustrators,第二个元素显示将是 block 的,并且第二个元素将是必需的,而如果第一个元素的值是其他值,第二个元素仍然将不显示且不是必需的。

这是我的代码:

<form action="" method="post" id='career' enctype="multipart/form-data">    

        <div class="col-xs-12 col-lg-3 paddingleft">

            <div style="margin-bottom:20px" class="form-group"> 
                <select  id="vacancy" name="vacancy" class="form-control">
                    <option value="" disabled selected>Select career</option>
                    <option value="Fashion Designers">Fashion Designers</option>
                    <option value="Fashion Illustrators">Fashion Illustrators</option>
                    <option value="Tailor">Tailors</option>
                    <option value="Tailor's Assistant">Tailor's Assistants</option>
                    <option value="Human Resources">Human Resources</option>
                    <option value="Marketing coordinators">Marketing Coordinators</option>
                    <option value="Sales coordinators">Sales Coordinators</option>
                    <option value="Accountants">Accountants</option>
                    <option value="Production Managers">Production Managers</option>
                </select>
            </div>
            <div style="margin-bottom:20px" class="form-group">
                <input type="file" name="portfolio" id="portfolio">
            </div>
            <div style="margin-bottom:20px" class="form-group">
                <input type="submit" class="btn btn-default pull-right" data-toggle="modal" data-target=".bs-example-modal-sm" value="Submit">
            </div>
        </div>
    </form>

<script type="text/javascript">

$('#career')
    .bootstrapValidator({
    feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
    },
    fields: {
        vacancy: {
            validators: {
                notEmpty: {
                    message: 'Vacancy is required.'
                },
            }
        },
        portfolio: {
            validators: {
                notEmpty: {
                    message: 'Portfolio is required.'
                },
                callback: {
                    message: 'Portfolio is required.',
                    callback: function (value, $field) {
                        if ($field.style.display === 'none') {
                            return true;
                        } else if (value != null) {

                            return true;
                        }
                    }
                }
            }
        },
    }
});
</script>

我收到错误:未捕获类型错误:无法读取未定义的属性“display”

最佳答案

我认为问题出在你的 $field 变量上。尝试使用 jQuery 来验证可见性:

!$field.is(':visible')

尝试调试此变量并检查是否可以使用 native javascript 或 jQuery 是最佳选择。

问候。

关于javascript - 如何验证元素是否显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25885067/

相关文章:

javascript - 在Android上运行NodeJS的可行选项(2017年8月)

javascript - 将 Node 变量从 Jade 传递到包含的 html?

html - Facebook 点赞按钮 - 评论框 "flyout"无响应

javascript - 带有 javascript 对象的三元表达式

javascript - 引用错误: function is not defined - Firefox

javascript - 我在javascript中更改img图片src,但img不刷新,如何刷新呢?

jquery - 数据表分页搜索框不起作用

javascript - 如何计算两个日期选择器之间的差异

html - Bootstrap 3 - 图像在桌面左中垂直对齐,在移动/平板电脑 View 中居中

html - Bootstrap 3 自定义 li 元素与 div 设计