Help su ASP e JS

giovedì 23 aprile 2009 - 13.07

kintaro Profilo | Junior Member

Ciao a tutti sono stato catapultato da pochissimo sul mondo vb.net e asp.net

non riesco a far funzionare la cosa più semplice del mondo ...
sto facendo un controllo js per un campo vuoto

ho fatto la seguente function :

function ControlloCampoDescrizione(){
if(trim(document.getElementById('txtDescrFile').value)=="")
{
alert("Il campo è vuoto");
}

ed ho la seguente riga asp :

<tr>
<td>
<asp:Label runat="server" Text="Descrizione:" ID="lblintDescrUpload" CssClass="SkinObject" />
<asp:TextBox id="txtDescrFile" CssClass="Head" Width="320" runat="server"></asp:TextBox> <br />
<asp:FileUpload ID="FileUploadUnita" runat="server" Width="400" CssClass="Head" />
</td>
</tr>
<tr><td align="center">
<asp:Button ID="btnUploadFileUnita" runat="server" Text="Allega" CssClass="StandardButton" />
</td>

quindi quando clicco il pulsante allega se la descrizione e vuota volevo far attivare l'alert

quale è il codice corretto per richiamare la funzione... perr quanto e banale la mia richiesta su internet ho trovato solo cose più difficile!! :(

grazie in anticipo
Fabio

paoval72 Profilo | Senior Member

>Ciao a tutti sono stato catapultato da pochissimo sul mondo vb.net
>e asp.net
Ciao
> <tr>
> <td>
><asp:Label runat="server" Text="Descrizione:" ID="lblintDescrUpload"
>CssClass="SkinObject" />
><asp:TextBox id="txtDescrFile" CssClass="Head" Width="320"
>runat="server"></asp:TextBox> <br />
><asp:FileUpload ID="FileUploadUnita" runat="server" Width="400"
>CssClass="Head" />
> </td>
> </tr>
> <tr><td align="center">
><asp:Button ID="btnUploadFileUnita" runat="server" Text="Allega"
>CssClass="StandardButton" />
> </td>

Prova:
<asp:Button ID="btnUploadFileUnita" runat="server" Text="Allega" CssClass="StandardButton" Onclientclick="ControlloCampoDescrizione()" />

Saluti,
PV

kintaro Profilo | Junior Member

Non funziona...
non effettua il controllo e carica il file anche senza il campo descrizione
ho sbagliato per caso la function?

paoval72 Profilo | Senior Member

Puoi postare l'html della pagina?

PV

kintaro Profilo | Junior Member

spero sia chiaro
ciao


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<script language="JavaScript" type="text/javascript">
<!--

function send(eTarget,operation,params)
{
document.getElementById(eTarget).value ='op:' + operation + ',params:' + params;
document.forms[0].submit();
return
}

function IsNumeric(txtInput)
{
var sText = document.getElementById(txtInput).value
var ValidChars = "0123456789-.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
if (!IsNumber)
{
alert("Inserire valore numerico o il simbolo '-' per inserire più particelle");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
return IsNumber;
}

function IsValidCoeff(txtInput)
{
var sText = document.getElementById(txtInput).value
var ValidChars = "0123456789,";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}

if (!IsNumber)
{
alert("Inserire valore numerico con virgola ',' per i decimali");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
else
{
var input;
input =Number(sText.replace(/\,/g,"."));
//alert(input);
if (input >1 )
{
alert("Valore superiore al consentito. Valore massimo 1");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
if (input ==0 )
{
alert("Valore zero non valido.");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
}

return IsNumber;
}

function IsValidNumeroVirgola(txtInput)
{
var sText = document.getElementById(txtInput).value
var ValidChars = "0123456789,";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}

if (!IsNumber)
{
alert("Inserire valore numerico con virgola ',' per i decimali");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
return IsNumber;
}
function IsValidSatoAvanzamento(txtInput,MaxNumber)
{
if (IsValidNumeroVirgola(txtInput))
{
var sText = document.getElementById(txtInput).value
var input;
input =Number(sText.replace(/\,/g,"."));
//alert(input);
if (input >MaxNumber )
{
alert("Percentuale non valida. Superato valore massimo!");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
}

}

function IsNumericText(Text)
{
var sText = Text
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
return IsNumber;
}
function formatCurrency(txtInput)
{
var strnumber;
strnumber = String(document.getElementById(txtInput).value);
strnumber = strnumber.replace(/\./g,"");
//alert("Input=" + strnumber)
var decimali =String("00");
var numero="0";
//alert("Input=" + strnumber)
if (strnumber.indexOf(",") >-1)
{

var indexDa =strnumber.indexOf(",") + 1
//alert("PosDa=" + indexDa);
numero=strnumber.substring(0,indexDa-1);
//alert("numero=" + numero);
decimali=strnumber.substring(indexDa);
//alert("decimali=" + decimali.indexOf(","));
if (decimali.indexOf(",") >-1)
{
alert("Valore non valido!")
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
return false;
}
if (decimali.length < 2)
decimali = decimali + "0";
}
else
{
numero=strnumber;
}
//alert("1numero=" + numero);
for (var i = 0; i < Math.floor((numero.length-(1+i))/3); i++)
numero = numero.substring(0,numero.length-(4*i+3))+'.'+
numero.substring(numero.length-(4*i+3));
//alert("2numero=" + numero);
document.getElementById(txtInput).value = numero + "," + decimali
return true;
}

function formatMillesimi(txtInput)
{
var strnumber;
strnumber = String(document.getElementById(txtInput).value);
strnumber = strnumber.replace(/\./g,"");
if (IsNumericText(strnumber))
{
var numero="0";
numero=strnumber;
for (var i = 0; i < Math.floor((numero.length-(1+i))/3); i++)
numero = numero.substring(0,numero.length-(4*i+3))+'.'+
numero.substring(numero.length-(4*i+3));
//alert("2numero=" + numero);
document.getElementById(txtInput).value = numero
}
else
{
alert("Inserire valore intero senza virgola!");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
}
return true;
}



function isDate(txtInput)
{

var dateStr = String(document.getElementById(txtInput).value);
//alert(dateStr.length)
if (dateStr.length >0)
{

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null)
{
alert("Inserire la data nel formato dd/mm/yyyy oppure dd-mm-yyyy.");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
return false;
}

day = matchArray[1]; // p@rse date into variables
month = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12)
{ // check month range
alert("Mese non valido.");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
return false;
}

if (day < 1 || day > 31)
{
alert("Giorno non valido.");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31)
{
alert("Il mese "+month+" non ha 31 giorni!");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
return false;
}

if (month == 2)
{ // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap))
{
alert("Febbraio " + year + " non ha " + day + " giorni!");
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();
return false;
}
}
}
return true; // date is valid
}

function flipFlop(eTarget) {
if (document.getElementById(eTarget).style.display=='')
{
document.getElementById(eTarget).style.display='none';
}
else
{
document.getElementById(eTarget).style.display='';
}
}
function ControlloCampoDescrizione(){
if(trim(document.getElementById('txtDescrFile').value)=="")
{
alert("Inserire una descrizione corretta!");
}
}

//-->
</script>
<body>
<form id="form1" runat="server">
<asp:HiddenField ID="HFInstanceID" runat="server" />
<asp:HiddenField ID="HFMode" runat="server" />
<asp:HiddenField ID="HFModuleIdCall" runat="server" />
<asp:HiddenField ID="HFClickNode" runat="server" />
<asp:HiddenField ID="HFStylesheet" runat="server" />
<asp:HiddenField ID="HFoperation" runat="server" />
<asp:HiddenField ID="HFUid" runat="server" />
<asp:HiddenField ID="HFCurrentInstanceID" runat="server" />
<asp:HiddenField ID="HFReq" runat="server" />
<asp:HiddenField ID="HFTypeMemo" runat="server" />
<asp:HiddenField ID="HFindexConservatoria" runat="server" />
<asp:HiddenField ID="HFindexImmobile" runat="server" />
<asp:HiddenField ID="HFindexUnita" runat="server" />
<asp:HiddenField ID="HFIdDocument" runat="server" />
<asp:HiddenField ID="HFUniqueIDUnit" runat="server" />
<asp:HiddenField ID="HFSelectDataStatoAvanzamento" runat="server" />
<asp:HiddenField ID="HFModule" runat="server" />
<asp:HiddenField ID="HFdisplaydiv" runat="server" />
<div>
<table style="width: 762px;vertical-align:top;">
<tr>
<td colspan="2" align="center">
Uid:<asp:TextBox runat="server" ID="txtUid" CssClass="Normal" Width="288px"></asp:TextBox>&nbsp;
mode:<asp:RadioButton ID="checkBoxDataUffcicioTecnico" runat="server" Text="Ufficio tecnico" GroupName="imp" Checked="true" AutoPostBack="True"/>&nbsp;
<asp:RadioButton ID="checkBoxDataVALGAR" runat="server" Text="VALGAR" GroupName="imp" AutoPostBack="True" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:Button runat="server" ID="btnImposta" CssClass="StandardButton" Text="Imposta" />
</td>
</tr>
<tr>
<td style="vertical-align:top" colspan="2">
<asp:Label ID="lblMessage" runat="server" Font-Bold="True" Font-Names="Lucida Console"
Font-Size="Small" ForeColor="Red"></asp:Label></td>
</tr>
<tr>
<td style="vertical-align:top">
&nbsp;<asp:TreeView runat="server" BackColor="#F7F6F3" ImageSet="WindowsHelp" ID="TreeViewUffTecnico" ShowCheckBoxes="Leaf">
<HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
<NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
NodeSpacing="0px" VerticalPadding="1px" />
<ParentNodeStyle Font-Bold="False" />
<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
VerticalPadding="0px" />
</asp:TreeView>
<asp:Button ID="ButtonNewCons" runat="server" Text="Nuova conservatoria" Width="200" CssClass="StandardButton" />
<asp:Button ID="ButtonDelCons" runat="server" Text="Elimina conservatoria" Width="200" CssClass="StandardButton" /><br />
<asp:Button ID="ButtonNewImm" runat="server" Text="Nuovo immobile" Width="200" CssClass="StandardButton"/>
<asp:Button ID="ButtonDelImm" runat="server" Text="Elimina immobile" Width="200" CssClass="StandardButton"/>
<asp:Button ID="ButtonNewUnit" runat="server" Text="Nuova Unit&agrave;" Width="200" CssClass="StandardButton"/>
<asp:Button ID="ButtonDelUnit" runat="server" Text="Elimina Unit&agrave;" Width="200" CssClass="StandardButton"/>

</td>
<td style="vertical-align:top" >
&nbsp;&nbsp;<asp:Table ID="Table1" runat="server" BackColor="#F7F6F3">
</asp:Table>
<asp:Panel runat="server" id="PanelAllegati">
<table>
<tr>
<td align="center"><asp:Label runat="server" Text="Documenti allegati" ID="lblIntDocumentiAllegati" CssClass="SkinObject" /></td>
</tr>
<tr>
<td>
<ASP:DATALIST id="dlFiles" runat="server" backcolor="White" cellspacing="1" cellpadding="0" width="100%" enableviewstate="False">
<ITEMSTYLE borderwidth="0" />
<HEADERSTYLE BackColor="#1C5E55" Font-Bold="True" ForeColor="White" Font-Size="XX-Small" borderwidth="0" />
<HEADERTEMPLATE>
<tr>
<td style="background-color:#1C5E55"><ASP:LABEL id="LABEL36" runat="server" resourcekey="Date" CssClass="NormalBold" style="color:White;background:#1C5E55;">&nbsp;Descrizione:</ASP:LABEL></td>
<td nowrap="nowrap" style="background-color:#1C5E55"><ASP:LABEL id="lblDateHeader" runat="server" resourcekey="Date" CssClass="NormalBold" style="color:White;background:#1C5E55;">&nbsp;NomeFile</ASP:LABEL></td>
<% If HFMode.Value = "edit" Then%>
<td style="background-color:#1C5E55"><ASP:LABEL id="LABEL28" runat="server" resourcekey="Summary" class="NormalBold" style="color:White;background:#1C5E55;">&nbsp;Azioni</ASP:LABEL></td>
<% end if %>
</tr>
</HEADERTEMPLATE>
<ITEMTEMPLATE>
<TR>
<td style='<%# getMyRigaCssClass(Container.DataItem) %>' >
<asp:label CssClass="Normal" EnableViewState="False" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Descrizione") %>' id="lblDate" />
</td>
<td style='<%# getMyRigaCssClass(Container.DataItem) %>' >
<a href='<%# GetLinkFile(Container.DataItem) %>' target="_blank" ><%#DataBinder.Eval(Container.DataItem, "FileName")%> </a>
</td>
<% If HFMode.Value = "edit" Then%>
<td nowrap="nowrap" style='<%# getMyRigaCssClass(Container.DataItem) %>' >
<a href="#" onclick="javascript:send('<%# me.HFoperation.UniqueID %>','delfile','IDFile=<%# DataBinder.Eval(Container.DataItem,"IDFile") %>;IDDocumento=<%# DataBinder.Eval(Container.DataItem,"IDDocumento") %>;FileName=<%# DataBinder.Eval(Container.DataItem,"FileName") %>')" >Elimina </a>
</td>
<% end if %>
</TR>
</ITEMTEMPLATE>
</ASP:DATALIST>
</td>
</tr>
<tr>
<td align="center">
<asp:Label runat="server" Text="Allega documenti" ID="lblupload" CssClass="SkinObject" />
</td>
</tr>
<tr>
<td>
<asp:Label runat="server" Text="Descrizione:" ID="lblintDescrUpload" CssClass="SkinObject" />
<asp:TextBox id="txtDescrFile" CssClass="Head" Width="320" runat="server"></asp:TextBox> <br />
<asp:FileUpload ID="FileUploadUnita" runat="server" Width="400" CssClass="Head" />
</td>
</tr>
<tr><td align="center">
<asp:Button ID="btnUploadFileUnita" runat="server" Text="Allega" CssClass="StandardButton" Onclientclick="ControlloCampoDescrizione()" />
</td>
</tr>
</table>
</asp:Panel>

</td>
</tr>
</table>
</div>
</form>
</body>
</html>

paoval72 Profilo | Senior Member

Scusa, ma non essendo esperto di javascript, non mi ero accorto di un semplice fatto: questo linguaggio NON ha la funzione trim() !
Quindi ho cercato e ho trovato questo codice (da http://free-script.it/post/Script_javascript_Funzione_trim_in_javascript-81.htm), che mi sembra funzionare:

function trim(stringa) { while (stringa.substring(0, 1) == ' ') { stringa = stringa.substring(1, stringa.length); } while (stringa.substring(stringa.length - 1, stringa.length) == ' ') { stringa = stringa.substring(0, stringa.length - 1); } return stringa; }

Ovviamente è da inserire prima della tua function di controllo.
Prova e dimmi se è ok.
Ciao!
PV

kintaro Profilo | Junior Member

Ne saprai poco ma mi funziona...
l'unica cosa che non ho capito e perchè mi refresha la pagina!!


anche se gli ho messo
document.getElementById(txtInput).focus();
document.getElementById(txtInput).select();

sai darmi qst ultimo piccolo aiuto?

paoval72 Profilo | Senior Member

Ci sono, dovevo solo arrivare a casa (dove ho avuto qualche problemino).
Qui trovi il perchè e una soluzione per evitare il postback:
http://www.peppedotnet.it/Blog/OnClientClickWithPostBack.aspx

In pratica, la soluzione è questa:

<asp:Button ID="btnUploadFileUnita" runat="server" Text="Allega" CssClass="StandardButton" Onclientclick="ControlloCampoDescrizione(); return false;" />

In effetti, non avevo pensato al "return false", che uso spesso in altri controlli per evitare il postback.

L'altra soluzione è usare un button html registrato lato server:
<input type="button" runat="server" value="Allega" onclick="ControlloCampoDescrizione()"/>

Però, dovresti già risolvere con la prima opzione.

Buona serata,
Paolo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5