【发布时间】: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