Кнопка ASP, вызывающая функцию JavaScript - PullRequest
0 голосов
/ 08 апреля 2010

Я пытаюсь создать свой собственный инструмент выбора даты, используя код из нескольких источников. В частности, сейчас я пытаюсь отобразить / скрыть календарь asp: button.

Что я делаю не так?

myDate.ascx

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="myDate.ascx.vb"
    Inherits="Website.myDate" %>

<script language="javascript" type="text/javascript">
    function toggleCalendar(myID) {
        var obj = document.getElementById(myID)
        obj.style.display = (obj.style.display == "none") ? "" : "none";
    }
</script>

<asp:TextBox ID="dateText" runat="server" > </asp:TextBox>
<asp:Button ID="dateBtn" runat="server" UseSubmitBehavior="false" Text="x" />
<asp:Calendar ID="dateCal" runat="server" >

</asp:Calendar>

myDate.ascx.vb

Partial Public Class myDate
    Inherits System.Web.UI.UserControl

    Protected Sub Page_Load
      (ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Add OnClick event to call JavaScript to toggle calendar display'
        calBtn.Attributes.Add("OnClick", "toggleCalendar(" & cal.ClientID & ")")
    End Sub

End Class

HTML-код кнопки (из браузера)

<input type="button" name="ctl03$calBtn" value="x"
       onclick="toggleCalendar(ctl03_cal);__doPostBack('ctl03$calBtn','')" 
       id="ctl03_calBtn" />

Ответы [ 3 ]

1 голос
/ 08 апреля 2010

Поскольку ваша операция полностью на стороне клиента. Как насчет определения обычной кнопки HTML?

<input type="button" value="X" onclick='toggleCalendar("<%=cal.ClientID%>");'/>
0 голосов
/ 06 августа 2013

только что используйте OnClientClick () вместо OnClick () Наслаждайтесь:)

0 голосов
/ 08 апреля 2010

Похоже, вам нужно добавить «return false;» утверждение в вашей строке attribute.add.

calBtn.Attributes.Add("OnClick", "toggleCalendar(" & cal.ClientID & "); return false;")

Это должно предотвратить запуск события обратной передачи в вашей веб-форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...