jQuery切换干扰与IF语句

时间:2017-03-26 21:14:30

标签: jquery asp.net vb.net visual-studio

所以我正在编写一页一步一步的预订流程 我已对其进行编码,以便在单击按钮时内容将切换下来。

这似乎干扰了其中一个按钮点击事件后面的VB.NET IF语句,因为现在IF语句不起作用。
如果没有选择某些内容,它应该显示div。

有人可以指导我做什么吗?

HTML:

<section>

  <div class="ChooseDoctor">    
    <div class="col-md-50 col-sm-50" style="text-align:center;">
      <h2>Choose your doctor</h2>

      <div class="alert alert-warning" id="warninginfo" runat="server">
        <strong>Warning!</strong> You have not selected your chosen doctor!
      </div> 

      <br />

      <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myConnectionString %>" SelectCommand="SELECT [FirstName], [Surname], [DoctorNumber], [ContactNumber] FROM [DoctorDetails]">
      </asp:SqlDataSource>
      <div class="col-md-50 col-sm-50" style="text-align:center;">
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="2" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" DataKeyNames="DoctorNumber" Height="411px" Width="824px" ShowHeader="False" HorizontalAlign="Center">
          <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
          <Columns>
            <asp:BoundField DataField="DoctorNumber" HeaderText="DoctorNumber" InsertVisible="False" ReadOnly="True" SortExpression="DoctorNumber" />
            <asp:BoundField DataField="FirstName" HeaderText="First Name" SortExpression="Forename" />
            <asp:BoundField DataField="Surname" HeaderText="Surname" SortExpression="Surname" />
            <asp:CommandField ButtonType="Image" ShowSelectButton="True" SelectImageUrl="~/Images/buttonforbooking.png" />
          </Columns>        
        </asp:GridView>

        <br /> 

        <asp:Button ID="btnNextDate" runat="server" Text="Next Step" OnClientClick="return false;" BackColor="#02bdd5" ForeColor="#ffffff" CssClass="btn btn-default btn-send" Height="55px" Width="211px" Align="Center"/>
        <br />
      </div>
    </div>
  </div>

代码隐藏文件:

warninginfo.Visible = False

 btnNextDate_Click(sender As Object, e As EventArgs) Handles btnNextDate.Click
If GridView1.SelectedValue = Nothing Then
    warninginfo.Visible = True
End If

JS文件:

$(document).ready(function()
{

    $("[id$=btnNextDate]").click(function () {
        $("[id$=ChooseDate]").slideToggle('slow');
    });

2 个答案:

答案 0 :(得分:0)

您必须将代码更改为:

$(document).ready(function()
{       
   $('#' + '<%= btnNextDate.ClientID %>').click(function (e) {
      e.preventDefault();
      $('#' + '<%= ChooseDate.ClientID %>').slideToggle('slow');
   });
});

使用客户端ID,而不是服务器ID。刚才我试过这个并成功地工作了。

答案 1 :(得分:0)

就个人而言,我会找到相对于单击按钮所需的元素,如果它们是兄弟节点,这是非常简单的。与在整个DOM中查找节点相比,DOM遍历的效率令人惊讶。

我也会使用类,而不是id,这在某种程度上很麻烦。

第一:

  • nextDate添加到按钮的班级列表
  • chooseDate添加到ChooseDate div的班级列表中。

现在编写点击处理程序,如下所示:

$(document).ready(function() {
    $("button.nextDate").on('click', function(e) {
        e.preventDefault(); // Maybe required, maybe not?
        $(this).siblings(".chooseDate").slideToggle('slow'); // Find the required element relative to the clicked button. DOM traversal is very efficient.
    });
});

除非因其他原因需要ID,否则它们会消失。

不知道这是否会阻止您对VB.NET IF语句的干扰,但是无论是否使用e.preventDefault();语句都值得尝试。