javascript中.datepicker属性的If条件



我有一个日期拾取器,我想要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'); }
                    );
            });

但是它显示了一个错误。谁能帮助我如何写如果条件设置日期拾取器属性$("defaultDate: parseInt(location.search.indexOf('did=')) >= 0 ? getDefaultDateVal() : new Date(),").datepicker ?

你想做什么?

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

parseInt显示javascript,但<%显示asp的服务器端代码块

为什么不只在服务器端做呢?试试这个

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

我无法在您的代码中获得getDefaultDateVal()函数。但希望这将在您的代码中的任何地方。所以试试下面的代码:

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

我认为,你正在编写内联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>";
}

并且您必须注册此程序集以使用literal:

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

最新更新