【问题标题】:How to set Label Text property based on data selection from DropDownlist using Javascript in Asp.net如何在 Asp.net 中使用 Javascript 根据从 DropDownlist 中选择的数据设置标签文本属性
【发布时间】:2015-05-18 20:39:01
【问题描述】:

我的网络表单上有两个标签控件和一个下拉列表。我在 Label1 中显示当前日期,我想根据下拉列表的选择在 Label2 中显示到期日期。我想要做的是在从下拉列表中选择数据时在 Label2 中显示到期日期,即如果“最多 7 天”,则 7 天将添加到当前日期,新日期将显示在 Label2 中。

我的 aspx 页面-

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
<script type="text/javascript">
$("#ddlvalid").change(function () {
        var selectvalid = $("#ddlvalid option:selected").text();
        if (selectvalid == "Select Validity") {
            alert("Please Select Validity");
        }
        else if (selectvalid == "Upto 7 Days") {
            var d = new Date();
            var month = d.getMonth() + 1;
            var day = d.getDate();
            var output = d.getFullYear() + '/' + (month < 10 ? '0' : '') + month + '/' + (day < 10 ? '0' : '') + day;
            var valdate = 7;
            var expdate = d.setDate(day + valdate);
            document.getElementById('lblenddt').innerHTML = expdate;
        }
        else if (selectvalid == "Upto 15 Days") {
            var d = new Date();
            var month = d.getMonth() + 1;
            var day = d.getDate();
            var output = d.getFullYear() + '/' + (month < 10 ? '0' : '') + month + '/' + (day < 10 ? '0' : '') + day;
            var valdate = 15;
            var expdate = d.setDate(day + valdate);
            document.getElementById('lblenddt').innerHTML = expdate;
        }
        else if (selectvalid == "Upto 30 Days") {
            var d = new Date();
            var month = d.getMonth() + 1;
            var day = d.getDate();
            var output = d.getFullYear() + '/' + (month < 10 ? '0' : '') + month + '/' + (day < 10 ? '0' : '') + day;
            var valdate = 30;
            var expdate = d.setDate(day + valdate);
            document.getElementById('lblenddt').innerHTML = expdate;
        }
    });
window.onload = function show() {
        var d = new Date();
        var month = d.getMonth() + 1;
        var day = d.getDate();
        var output = d.getFullYear() + '/' + (month < 10 ? '0' : '') + month + '/' + (day < 10 ? '0' : '') + day;
        document.getElementById('lblenqmdon').innerHTML = output;
    };
</script>
<body>
<div>
    <table border="0" cellpadding="0" cellspacing="0">
<tr>
    <td>Enquiry Made On:</td>
    <td>
        <label id="lblenqmdon" runat="server"></label>
    </td>
    </tr>
<tr>
    <td>Enquiry Validity:</td>
    <td><asp:DropDownList ID="ddlvalid" runat="server">
                                <asp:ListItem>Select Validity</asp:ListItem>
                                <asp:ListItem>Upto 7 Days</asp:ListItem>
                            <asp:ListItem>Upto 15 Days</asp:ListItem>
                            <asp:ListItem>Upto 30 Days</asp:ListItem>
                </asp:DropDownList>
</td>
    </tr>
    <tr>
    <td>Enquiry Valid Upto:</td>
    <td>
        <label id="lblenddt" runat="server"></label>
    </td>
    </tr></table>
</div></body>
</html>

我的 Javascript 代码不起作用。请指导我哪里做错了?

【问题讨论】:

  • 您是否检查过您的 javascript 中收到了什么错误?
  • 你的 标签在哪里关闭?
  • 为什么不使用 DDL 的 value 属性,例如7 表示“最多 7 天” - 然后只需获取所选项目的值并添加它。
  • 不要使用旧的 JS 名称,而是使用 jQuery - $("#lbldnddt").text(expdate);
  • @Max 实际上没有错误,标签“lblenddt”中没有显示任何内容

标签: javascript c# asp.net


【解决方案1】:

试试这个

<script type="text/javascript">
    function findDate() {

        var selectvalid = document.getElementById("<%=ddlvalid.ClientID  %>").value;

        if (selectvalid == "Select Validity") {
            alert("Please Select Validity");
        }
        else if (selectvalid == "Upto 7 Days") {

            var str = document.getElementById("<%=lblenqmdon.ClientID  %>").innerHTML;
            var parts = str.split('/');

            var month = parts[0] && parseInt(parts[0], 10);
            var day = parts[1] && parseInt(parts[1], 10);
            var year = parts[2] && parseInt(parts[2], 10);

            var duration = 7;

            if (day <= 31 && day >= 1 && month <= 12 && month >= 1) {
                var expiryDate = new Date(year, month - 1, day);
                expiryDate.setDate(expiryDate.getDate() + duration);

                var day = ('0' + expiryDate.getDate()).slice(-2);
                var month = ('0' + (expiryDate.getMonth() + 1)).slice(-2);
                var year = expiryDate.getFullYear();
                document.getElementById("<%=lblenddt.ClientID  %>").innerHTML = month + "/" + day + "/" + year;

            }
        }
        else if (selectvalid == "Upto 15 Days") {

            var str = document.getElementById("<%=lblenqmdon.ClientID  %>").innerHTML;
            var parts = str.split('/');

            var month = parts[0] && parseInt(parts[0], 10);
            var day = parts[1] && parseInt(parts[1], 10);
            var year = parts[2] && parseInt(parts[2], 10);

            var duration = 15;

            if (day <= 31 && day >= 1 && month <= 12 && month >= 1) {
                var expiryDate = new Date(year, month - 1, day);
                expiryDate.setDate(expiryDate.getDate() + duration);

                var day = ('0' + expiryDate.getDate()).slice(-2);
                var month = ('0' + (expiryDate.getMonth() + 1)).slice(-2);
                var year = expiryDate.getFullYear();
                document.getElementById("<%=lblenddt.ClientID  %>").innerHTML = month + "/" + day + "/" + year;

            }

        }
        else if (selectvalid == "Upto 30 Days") {

            var str = document.getElementById("<%=lblenqmdon.ClientID  %>").innerHTML;
            var parts = str.split('/');

            var month = parts[0] && parseInt(parts[0], 10);
            var day = parts[1] && parseInt(parts[1], 10);
            var year = parts[2] && parseInt(parts[2], 10);

            var duration = 30;

            if (day <= 31 && day >= 1 && month <= 12 && month >= 1) {
                var expiryDate = new Date(year, month - 1, day);
                expiryDate.setDate(expiryDate.getDate() + duration);

                var day = ('0' + expiryDate.getDate()).slice(-2);
                var month = ('0' + (expiryDate.getMonth() + 1)).slice(-2);
                var year = expiryDate.getFullYear();
                document.getElementById("<%=lblenddt.ClientID  %>").innerHTML = month + "/" + day + "/" + year;

            }
        }
    }
</script>
<script type="text/javascript">

    window.onload = function () {
        getDate();
    };

    function getDate() {
        var dt = new Date();
        var day = dt.getDate();
        var month = dt.getMonth() + 1;
        var year = dt.getFullYear();
        document.getElementById("<%=lblenqmdon.ClientID  %>").innerHTML = month + "/" + day + "/" + year;
    }
</script>

表格中的AND

                <asp:DropDownList ID="ddlvalid" runat="server" onchange="javascript:findDate();">
                    <asp:ListItem>Select Validity</asp:ListItem>
                    <asp:ListItem>Upto 7 Days</asp:ListItem>
                    <asp:ListItem>Upto 15 Days</asp:ListItem>
                    <asp:ListItem>Upto 30 Days</asp:ListItem>
                </asp:DropDownList>

【讨论】:

  • 非常感谢 Hiral。虽然我设法以不同的方式做同样的事情。 .但你的方式仍然是正确的。再次感谢您的支持 :-) 干杯。 .
【解决方案2】:

我设法做同样的事情-$(function () {

<script type="text/javascript">        
$("#ddlvalid").change(function () {
            var selectvalid = $("#ddlvalid option:selected").text();
            if (selectvalid == "Select Validity") {
                alert("Please Select Validity");
            }
            else if (selectvalid == "Upto 7 Days") {

                var today = new Date();
                var tomorrow = new Date(today);
                tomorrow.setDate(today.getDate() + 7);

                var dd = tomorrow.getDate();
                var mm = tomorrow.getMonth() + 1;
                var y = tomorrow.getFullYear();

                var output = tomorrow.getFullYear() + '/' + (mm < 10 ? '0' : '') + mm + '/' + (dd < 10 ? '0' : '') + dd;
                document.getElementById('lblenddt').innerHTML = output;
            }
            else if (selectvalid == "Upto 15 Days") {
                var today = new Date();
                var tomorrow = new Date(today);
                tomorrow.setDate(today.getDate() + 15);


                var dd = tomorrow.getDate();
                var mm = tomorrow.getMonth() + 1;
                var y = tomorrow.getFullYear();

                var output = tomorrow.getFullYear() + '/' + (mm < 10 ? '0' : '') + mm + '/' + (dd < 10 ? '0' : '') + dd;
                document.getElementById('lblenddt').innerHTML = output;
            }
            else if (selectvalid == "Upto 30 Days") {
                var today = new Date();
                var tomorrow = new Date(today);
                tomorrow.setDate(today.getDate() + 30);

                var dd = tomorrow.getDate();
                var mm = tomorrow.getMonth() + 1;
                var y = tomorrow.getFullYear();

                var output = tomorrow.getFullYear() + '/' + (mm < 10 ? '0' : '') + mm + '/' + (dd < 10 ? '0' : '') + dd;
                document.getElementById('lblenddt').innerHTML = output;
            }
        });

        window.onload = function show() {
            var d = new Date();
            var month = d.getMonth() + 1;
            var day = d.getDate();
            var output = d.getFullYear() + '/' + (month < 10 ? '0' : '') + month + '/' + (day < 10 ? '0' : '') + day;
            document.getElementById('lblenqmdon').innerHTML = output;
        };
    });
    </script>

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2019-02-20
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多