如果javascript中的.datepicker属性的条件

时间:2013-06-03 09:53:23

标签: javascript jquery datepicker

我有一个datepicker,我想要defaultDate属性,如果它满足我的条件。这是下面的代码,

 $(function () {
                jQuery('#datepicker').datepicker({
                  <% if (parseInt(location.search.indexOf('did=')) >= 0) { %>
                        defaultDate: getDefaultDateVal(),
                   <% } %>
                   //     defaultDate: parseInt(location.search.indexOf('did=')) >= 0 ? getDefaultDateVal() : new Date(),
                        inline: true,
                        maxDate: '+10D',
                        onLoad:function(){alert("hello");},
                        onSelect: function(date) {
                            //alert('Diet plan for ' + date);
                        var d = new Date("January 01, 1970 00:00:00");
                        var d2 = new Date(date);
                        d.setMonth(d.getMonth());
                        var theMonth;
                        theMonth = d.toString();
                        theMonth = theMonth.substr(4, 3);

                        d2.setMonth(d2.getMonth());
                        var theMonth2;
                        theMonth2 = d2.toString();
                        theMonth2 = theMonth2.substr(4, 3);

                        var firstDay = d.getDate();
                        var secondDay = d2.getDate();
                        var firstMonth = theMonth;
                        var secondMonth = theMonth2;
                        var firstYear = d.getFullYear();
                        var secondYear = d2.getFullYear();
                        var firstDate = new Date(firstDay + " " + firstMonth + " " + firstYear);
                        var secondDate = new Date(secondDay + " " + secondMonth + " " + secondYear);
                        var daysDiff = (secondDate.valueOf() - firstDate.valueOf());
                        daysDiff = Math.floor(Math.abs((((daysDiff / 1000) / 60) / 60) / 24));
                        //alert(daysDiff);


                        self.location.href = './Goal.aspx?did=' + daysDiff + '';
                        //filterGetMidHead(date);
                        //wait(500);

                        //   alert(date);
                        var startdate = ((d2.getDate()).toString().length == 1) ? "0" + (d2.getDate()).toString() : (d2.getDate()).toString();
                        var enddate = new Date();
                        enddate.setDate(d2.getDate() + 7);
                        var enddate1 = ((enddate.getDate()).toString().length == 1) ? "0" + (enddate.getDate()).toString() : (enddate.getDate()).toString();
                        //  alert(enddate1 + "hello");
                        var month2 = ((d2.getMonth() + 1).toString().length == 1) ? "0" + (d2.getMonth() + 1).toString() : (d2.getMonth() + 1).toString();
                        var endatemonth = ((enddate.getMonth() + 1).toString().length == 1) ? "0" + (enddate.getMonth() + 1).toString() : (enddate.getMonth() + 1).toString();

                        //alert(new Date().setDate(d2.getDate() + 7));
                        document.getElementById('<%=lblHeaderDate1.ClientID %>').innerHTML = startdate + "/" + month2 + "/" + d2.getFullYear();
                        document.getElementById('<%=lblHeaderDate2.ClientID %>').innerHTML = enddate1 + "/" + endatemonth + "/" + enddate.getFullYear();
                        //    testnew();
                    }
                });

                  <% if (Convert.ToString(Session["LanguageID"])=="IS") 
                       { %>
                    jQuery("#datepicker").datepicker(jQuery.datepicker.regional['is']);
                    <% } %>

                //jQuery("#datepicker").datepicker(jQuery.datepicker.regional['is']);


                //hover states on the static widgets
                jQuery('#dialog_link, ul#icons li').hover(
                        function () { jQuery(this).addClass('ui-state-hover'); },
                        function () { jQuery(this).removeClass('ui-state-hover'); }
                    );
            });

但它给我一个错误。任何人都可以帮我如何写如果条件设置datepicker attribue $("defaultDate: parseInt(location.search.indexOf('did=')) >= 0 ? getDefaultDateVal() : new Date(),").datepicker

3 个答案:

答案 0 :(得分:1)

我无法在代码中获得getDefaultDateVal()功能。但希望这将在你的代码中随处可见。请尝试以下代码:

defaultDate: ((parseInt(location.search.indexOf('did=')) >= 0) ? getDefaultDateVal() : new Date()),

答案 1 :(得分:1)

你想做什么?

<% if (parseInt(location.search.indexOf('did=')) >= 0) { %>
                    defaultDate: getDefaultDateVal(),
<% } %>

parseInt显示javascript但<%显示了asp

的服务器端代码块

为什么不在服务器端执行此操作?试试这个

<% if (System.Web.HttpContext.Current.Request.QueryString.ToString().Contains("did=")) { %>
                    defaultDate: getDefaultDateVal(),
<% } %>

答案 2 :(得分:0)

我认为,您正在编写内联javascript,因为您正在javascript中编写c#代码,并且您正在根据会话ID创建条件。我认为这是不好的做法,因为你的javascript不会被缓存而你正在混合客户端和服务器端代码。 我建议制作两个不同的javascript文件,并将包含到c#代码的页面转换为文字。在这种情况下,If语句可以在Page_Load中,而javascript在分隔文件中。

在这种情况下,浏览器可以缓存它。

示例:

将此标记放入aspx:

<asp:Literal runat="server" ID="lscript"/>

c#page load:

if (Session["LanguageID"].ToString()=="IS") 
{
   lscript.Text = "<script src=/js/CondFirst.js></script>";
}
else
{
   lscript.Text = "<script src=/js/CondSecond.js></script>";
}

您必须注册此程序集才能使用文字:

<%@ Register Assembly="System.Web" Namespace="System.Web.UI" TagPrefix="asp" %>