使用Javascript设置一个ASP TextBox's enabled属性

Setting an ASP TextBox's enabled property using Javascript

本文关键字:TextBox 属性 enabled ASP 一个 设置 Javascript 使用      更新时间:2023-09-26

我得到"CS0030:无法将类型'字符串'转换为'bool'"作为错误消息,当试图设置ASP TextBox的启用属性时。

标记如下:

<asp:TextBox ID="dateTo" runat="server" Enabled='<%# "javascript:disableDateTo()"%>' BackColor="#FFFF99" />

javascript函数是:

function disableDateTo() {
    // Disable the dateTo field if the dateFrom field doesn't contain a value
    if ($("#MainContent_dateFrom").datepicker("getDate") != null) {
        return false;
    }
    else {
        return true;
    }
}

我同意您不能像示例中那样混合服务器端和客户端代码的评论。看起来您想要的东西将接受日期作为文本输入,直到用户从日历中选择一个日期。如果是这种情况,我会将其实现为纯客户端代码,如下所示:

Html:

<div id='MainContent_dateFrom'></div>
<input id='dateTo' type='text' />

脚本:

$(document).ready(function() {
    $("#MainContent_dateFrom").datepicker({
        onSelect: function() {
            $("#dateTo").val(new Date(Date.parse($(this).datepicker("getDate"))).toLocaleDateString())
                .attr("disabled", "disabled");
        }
    });
});

您需要在asp.net控件标记之外触发一个JavaScript事件。下面是如何以页面加载为例实现这一点:

<script type="text/javascript">
$(function () {
    disable();
});
function disable() {
    if ($("#dateTo[disabled]").length > 0) {
        $("#dateTo").removeAttr('disabled');
    }
    else {
        $("#dateTo").attr('disabled', 'disabled');
    }
}
</script>