40 messaggi dal 20 novembre 2012
Buon giorno a tutti, sto facendo una prova di interazione fra ASP e JavaScript.
Vorrei che un campo (textbox) venisse controllato in modo che possa contenere solo una data valida, in rete ho trovato una Function che valida una data.
Quindi ho inserito la function (come modulo esterno) e poi ho scritto alcune istruzioni jsc che prendono il campo da controllare e lo passano alla function esterna.
La pagina non viene neanche eseguita, infatti durante l'esecuzione mi viene detto che la funzione richiamata "non è un membro della mia pagina asp", segue la pagina ASP:

<%@ Page Title="Form4" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="WebForm4.aspx.vb" Inherits="WBProve.WebForm4" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h3>
<center>Form4: Utilizzo Javascript</center>
</h3>
<div>
<script src="Scripts/ValidaData.js" type="text/javascript1.4" lang="javascript"></script>
<script type="text/javascript1.4">
function myFunction()
{
var stringa, x;
stringa = document.getElementById("TbxData").value;
x = controlloData(stringa);
if (x == true) {
document.getElementById("LblMsg").innerHTML = "Data valida";
document.bgColor = "GREEN";
} else {
document.getElementById("LblMsg").innerHTML = "Data NON valida";
document.bgColor = "RED";
}
document.getElementById("TbxData").focus();
}
</script>
<p></p>
&nbsp;&nbsp;
<asp:Label id="LblData" runat="server" Text="Data da controllare (gg/mm/aaaa)"></asp:Label>
&nbsp;&nbsp;
<asp:TextBox ID="TbxData" runat="server" Width="120px" MaxLength="10"></asp:TextBox>
<p></p>
&nbsp;&nbsp;
<asp:Label ID="LblImporto" runat="server" Text="Importo da controllare (nnnnn,nn)"></asp:Label>
&nbsp;&nbsp;&nbsp;
<asp:TextBox ID="TbxImporto" runat="server" Wrap="False" Width="114px" MaxLength="8"></asp:TextBox>
<p></p>
&nbsp;&nbsp;
<asp:Button ID="BtnControllo" runat="server" Text="Controlla dati" ToolTip="Valida i dati inseriti" OnClick= "myFunction()"/>
<p></p>
<asp:Label ID="LblMsg" runat="server" />
</div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="FooterContent" runat="server">
</asp:Content>

Le stesse istruzioni (comprese fra <script> e </script>) inserite in un html, funzionano.
Qualcuno più pratico di me, mi sa aiutare? Grazie.
3 messaggi dal 11 febbraio 2013
Certo, perchè quell'OnClick si riferisce all'onClick dell'elemento asp.net (contrassegnato con runat=server) che nel tuo caso è un ASP:Button, quindi, si riferisce all'onClick che fa lanciare una funzione lato server (e che quindi non è ovviamente presente nel tuo code behind (c#)).

Per risolvere questo problema io conosco solo un metodo (anche se non uso webform da un bel pò), ovvero nel Page Load del tuo code behind devi aggiungere degli attributi al pulsante in questione.

BtnControllo.Attributes.Add("onclick", "return myFunction();");

Fammi sapere se funziona ^_^
40 messaggi dal 20 novembre 2012
Ciao, ho eseguito le seguente modifica, nel codice vb ho inserito:

Public Class WebForm4
Inherits System.Web.UI.Page
Private check As Boolean = False

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
TbxData.Text = Date.Today
TbxImporto.Text = 99999999
End If

BtnControllo.Attributes.Add("onclick", "return myFunction();")

End Sub

Protected Sub BtnControllo_Click(sender As Object, e As EventArgs) Handles BtnControllo.Click
'check = controlloData(TbxData.Text)
'LblMsg.Text = "Valore campo Check = " & check
End Sub
End Class

Ma il risultato è lo stesso, forse ho compreso male quello che mi hai detto?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.