单击按钮搜索后,Div切换消失

时间:2017-12-16 14:25:42

标签: javascript jquery asp.net

我试图用jQuery做一件简单的事情。

有一个名为TextBox1的按钮,用于显示或隐藏搜索div,并且它可以正常运行。

但是在div内部,在我显示div后,我有文字和搜索按钮,假设有人在TextBox1中输入了一些文字进行搜索。

但是,如果我输入searchButton并点击<script type="text/javascript"> $(document).ready(function () { $('#<%=showDiv.ClientID%>').click(function (evt) { $("#<%=myDiv.ClientID%>").slideToggle("slow"); evt.preventDefault(); }); }); </script> <asp:Button ID="showDiv" runat="server" Text="Show/Hide Div" /> <br /> <br /> <div id="myDiv" runat="server" style="display:none"> <asp:Button ID="searchButton" runat="server" Text="Serach Button" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </div> ,则div会进入隐藏位置。

我认为这是因为网页重新加载,但我不知道如何修复它。

这是我的代码:

 //getting time format 07:14 Am/Pm
     NSString * time1 = Timepicker.text;
                NSArray *array = [time1 componentsSeparatedByString:@":"];



            [datecomponet setHour:19];
            [datecomponet setMinute:38];



[dateformater setDateFormat:@"hh:mm a"];
        self.Timepicker.text= [NSString stringWithFormat:@"%@",[dateformater stringFromDate:datepicker.date]];


/// This is local notification code

NSCalendar * gregcalender = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

    [gregcalender setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"IST"]];

    NSDateComponents *datecomponet = [gregcalender components:NSCalendarUnitYear|NSCalendarUnitMonth |  NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute fromDate:date];

//    [datecomponet setYear:2017];
//    [datecomponet setMonth:12];
//    [datecomponet setDay:16];
//    [datecomponet setHour:18];
//    [datecomponet setMinute:38];

    NSInteger year = [datecomponet year];
    NSInteger month = [datecomponet month];
    NSInteger day = [datecomponet day];


    NSString * time1 = Timepicker.text;
//    NSInteger hour = [datecomponet hour];
//    NSInteger min = [datecomponet minute];
    //NSString *testString= @"It's a rainy day";
    NSArray *array = [time1 componentsSeparatedByString:@":"];

        [datecomponet setHour:18];
        [datecomponet setMinute:38];


    UIDatePicker * dd = [[UIDatePicker alloc]init];
    [dd setDate:[gregcalender dateFromComponents:datecomponet]];

    NSLog(@"======>NSNotification method tab<=====");

2 个答案:

答案 0 :(得分:0)

更新

注意:按钮searchButton不得有点击方式

<asp:Button ID="searchButton" runat="server" Text="Serach Button" />

添加临时按钮并通过将样式设置为display来显示:none:

<asp:Button ID="btnInvisible" runat="server" style="display: none" 
    OnClick="btnInvisible_Click" />

在jQuery中:

<script src="../Scripts/jquery-1.7.1.min.js"></script>

<script type="text/javascript">

    $(document).ready(function () {
        $('#<%=searchButtin.ClientID%>').click(function (e) {
            $('#<%=btnInvisible.ClientID%>').click();
            e.preventDefault();
        });
    });

</script>

单击服务器端的方法:

protected void btnInvisible_Click(object sender, EventArgs e)
{
    //... code for searching...
}

答案 1 :(得分:0)

如果你想使用asp控件必须管理服务器端的回发和切换方法

将click方法添加到showDiv按钮并编写此代码

<asp:Button ID="showDiv" runat="server" CssClass="showDiv" Text="Show/Hide Div" OnClick="showDiv_Click"/>

和服务器端代码是

protected void showDiv_Click(object sender, EventArgs e)
    {

        if (myDiv.Style["Display"] == "none")
        {
            myDiv.Style["Display"] = "block";
        }
        else
        {
            myDiv.Style["Display"] = "none";
        }
    }

并且服务器端代码中的页面加载方法必须是

 protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack){
         myDiv.Style["Display"] = "none";
        }

    }

如果你必须使用thr jquery方法,最好使用html按钮并从jquery管理它显示

另一种方法是在搜索按钮单击方法中编写此代码

<asp:Button ID="searchButton"  runat="server" Text="Serach Button" OnClick="searchButton_Click" />

protected void searchButton_Click(object sender, EventArgs e)
    {

            myDiv.Style["Display"] = "block";

    }

并在页面加载方法中设置display属性

protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack){
         myDiv.Style["Display"] = "none";
        }

    }