在asp.net下拉列表控件更改上进行计算

时间:2013-10-24 01:52:23

标签: jquery asp.net html-select

我有这个html标记:

<div class="table">
            <div class="col1 right">Start:

            </div>
            <div class="col2outer center">
                <div class="col2mid">
                    <asp:DropDownList ID="ddlStartHour" runat="server" onchange="Calculate();">
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
<asp:ListItem Value="4">4</asp:ListItem>

</asp:DropDownList>
                </div>
                <div class="col2side">
                    <asp:DropDownList ID="ddlStartMinute" runat="server" onchange="calculateTime()">
 <asp:ListItem Value="0">0</asp:ListItem>
 <asp:ListItem Value="30">30</asp:ListItem>
 </asp:DropDownList>
                </div>
            </div>
        </div>
        <div class="table">
            <div class="col1 right">Finish:

            </div>
            <div class="col2outer center">
                <div class="col2mid">
                    <asp:DropDownList ID="ddlFinishHour" runat="server" onchange="Calculate();">
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
<asp:ListItem Value="4">4</asp:ListItem></asp:DropDownList>
                </div>
                <div class="col2side">
                    <asp:DropDownList ID="ddlFinishMinute" runat="server" >
<asp:ListItem Value="0">0</asp:ListItem>
<asp:ListItem Value="30">30</asp:ListItem>

 </asp:DropDownList>
                </div>
            </div>
        </div>
 <div class="margin1">
            <h4>total</h4>
             <h3><asp:Label ID="Label1" runat="server">0</asp:Literal></h3>
             <h4>hrs</h4>
    </div>

我想在用户选择更改时在客户端进行计算。我已经看到许多帖子试图使用普通的html元素来做到这一点。但在我的情况下,我需要使用asp.net控件。我尝试使用这个javascript(http://jsfiddle.net/VnwF7/4/)代码,但它不适用于asp.net控件。

function Calculate() {
    //get values
    var valuestart = $("#<%= ddlStartH.ClientID %>").val();
var valuestop = $("#<%= ddlFinishH.ClientID %>").val();

//create date format          
var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();

var hourDiff = timeEnd - timeStart - 0.5;

$('#<%= lblDuration.ClientID %>').val(hourDiff);

}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

var timeStart = new Date("01/01/2007 " + valuestart + ":00:00").getHours();
var timeEnd = new Date("01/01/2007 " + valuestop + ":00:00").getHours();

而不是:

var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();