0

I am having two Label controls and a dropdownlist on my web form. I am displaying current date in Label1 and I want to display Expiry Date in Label2 based on selection of dropdownlist. What I am trying to do is I want to display expiry date within Label2 on selecting data from dropdownlist i.e. if "Upto 7 Days" then 7Days will be added to current date and the new date will be displayed within Label2.

My aspx page-

<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>

My Javascript code is not working. Please guide me where I am doing wrong?

6
  • 1
    Did you check what error are you receiving in your javascript ? Commented May 18, 2015 at 10:45
  • 1
    where is your <head> tag closed? Commented May 18, 2015 at 10:45
  • Why don't you use the value property of the DDL, e.g. 7 for "Upto 7 Days" - then just take the value of the selected item and add it. Commented May 18, 2015 at 10:58
  • And instead of using the older JS designation use the jQuery - $("#lbldnddt").text(expdate); Commented May 18, 2015 at 10:59
  • @Max There is no error in fact nothing is displayed with in label "lblenddt" Commented May 18, 2015 at 11:13

2 Answers 2

1

Try This

<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 in Form

                <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>
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks a lot Hiral. Though I managed to do the same in a different way. .But still your way is also correct. Thanks again for your support :-) Cheers. .
0

I managed to do the same like this-$(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>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.