【问题标题】:Enable/disable range input启用/禁用范围输入
【发布时间】:2013-09-03 16:47:09
【问题描述】:

我有一个这样定义的范围输入:

@Html.LabelFor(m => Model.Quality, Resources.CompressionQuality)
<input type="range" name="Quality" id="Quality" data-mini="true" min="0" max="100" value="@Model.Quality">

还有一个下拉菜单:

@Html.LabelFor(m => Model.TiffCompression, Resources.TiffCompression)
@Html.DropDownListFor(m => Model.TiffCompression, tiffCompressions, Html.DataMiniAttribute())
@Html.ValidationMessageFor(m => Model.TiffCompression)

根据 DropDown 选择,我想启用/禁用范围输入。这是我的做法:

<script type="text/javascript">
    $(document).ready(function () {

        function ToggleSection() {
            var selectedVal = $('#TiffCompression').find('option:selected').val();
            $('#Quality').prop('disabled', true);

            switch (selectedVal) {
                case "JPEG":
                    $('#Quality').prop('disabled', false);
                    break;
            }
        }

        ToggleSection();
        $('#TiffCompression').change(function () { ToggleSection(); });
    });
</script>

disabled 属性确实发生了变化,但在我单击它之前,控件不会刷新。我试过打电话给change(),进行不同的刷新等,但没有运气。

如何启用/禁用它?

【问题讨论】:

  • 您的代码非常适合我,范围输入会立即更改,即使焦点位于下拉菜单上并且我使用向上和向下箭头键也是如此。您确定没有收到任何 javascript 错误吗?我正在使用 jQuery 1.8.2 和 Chrome 29.0.1547.62。
  • 刚刚试用了 Firefox 23.0.1 和 Internet Explorer 10,它们也都适用。
  • @asymptoticFault $('#Quality').slider("enable") 完成了这项工作,感谢您尝试帮助我:)

标签: javascript jquery asp.net asp.net-mvc-4


【解决方案1】:

不知道为什么它不起作用,但是

$('#Quality').slider('disable');

$('#Quality').slider("enable");

完成了任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 2015-06-16
    相关资源
    最近更新 更多