Sto costruendo un'applicazione web utilizzando Visual Studio 2012. Sto cercando di aggiungere il conteggio delle parole nella mia casella di testo. Tuttavia dopo aver aggiunto i codici javascript e i codici html. Ricevo l'errore come indicato sopra.
Ecco i miei codici javascript
Codice :
function validateLimit(obj, divID, maxchar) {
objDiv = get_object(divID);
if (this.id) obj = this;
var remaningChar = maxchar - trimEnter(obj.value).length;
if (objDiv.id) {
objDiv.innerHTML = remaningChar + " characters left";
}
if (remaningChar <= 0) {
obj.value = obj.value.substring(maxchar, 0);
if (objDiv.id) {
objDiv.innerHTML = "0 characters left";
}
return false;
}
else
{ return true; }
}
function get_object(id) {
var object = null;
if (document.layers) {
object = document.layers[id];
} else if (document.all) {
object = document.all[id];
} else if (document.getElementById) {
object = document.getElementById(id);
}
return object;
}
function trimEnter(dataStr) {
return dataStr.replace(/(\r\n|\r|\n)/g, "");
}
Codici del server nella pagina principale
<script type="text/javascript" src="js/JScript.js" ></script>
Codici ASPX, ( codici Html )
<tr>
<th style="width: 595px; height: 135px;">Official Report :</th>
<td colspan="4" style="height: 135px">
<asp:TextBox ID="tbofficial" runat="server" Height="121px" TextMode="MultiLine" Width="878px" MaxLength="500" ToolTip="Summary:(500 characters)" onkeyup="return validateLimit(this, 'lblMsg1', 500)" ></asp:TextBox>
<div id="lblMsg1">500 characters left</div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="tbofficial" Display="Dynamic"
SetFocusOnError="True">*</asp:RequiredFieldValidator>
<br />
<asp:Label ID="lblmsg" runat="server"></asp:Label>
<br />
<br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
<asp:Button ID="btnClear" runat="server" Text="Clear" OnClick="btnClear_Click" />
</td>
</tr>
Avete bisogno di una chiave web.config per abilitare la modalità di convalida pre 4.5.
Maggiori informazioni su ValidationSettings:UnobtrusiveValidationMode:
Specifica come ASP.NET abilita globalmente i controlli del validatore incorporato di usare JavaScript non intrusivo per la logica di validazione lato client.
Tipo: UnobtrusiveValidationMode
Valore predefinito: Nessuno
Note: Se questo valore chiave è impostato a "None" [default], l'applicazione ASP.NET userà il comportamento pre-4.5 (JavaScript in linea in nelle pagine) per la logica di validazione lato client. Se questo valore chiave è impostato su "WebForms", ASP.NET usa HTML5 data-attributes e late bound JavaScript da un riferimento di script aggiunto per la validazione lato client logica.
Esempio:
appSettings"
Piuttosto che disabilitare una nuova funzione, ho scelto di seguire le istruzioni dell'errore. Nel mio global.asax.cs ho aggiunto:
protected void Application_Start(object sender, EventArgs e)
{
string JQueryVer = "1.7.1";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition
{
Path = "~/Scripts/jquery-" + JQueryVer + ".min.js",
DebugPath = "~/Scripts/jquery-" + JQueryVer + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + JQueryVer + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
Questo viene da un msdn blog post che evidenzia alcuni dei vantaggi delle mappature delle risorse degli script. Di particolare interesse per me era il controllo centralizzato sulla consegna dei file di script basato su "debug=true", EnableCDN, ecc.
La validazione non intrusiva è abilitata di default nella nuova versione di ASP.NET. La validazione non intrusiva mira a diminuire la dimensione della pagina sostituendo il JavaScript in linea per eseguire la validazione con una piccola libreria JavaScript che usa jQuery.
Potete disabilitarla modificando web.config per includere quanto segue:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
O meglio ancora configurarlo correttamente modificando il metodo Application_Start in global.asax:
void Application_Start(object sender, EventArgs e)
{
RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition
{
Path = "/~Scripts/jquery-2.1.1.min.js"
}
);
}
La pagina 399 di Beginning ASP.NET 4.5.1 in C# e VB fornisce una discussione sui benefici della validazione non intrusiva e una guida per configurarla.
Per chi cerca RouteConfig. Viene aggiunto automaticamente quando si crea un nuovo progetto in Visual Studio nella cartella App_Code. Il contenuto assomiglia a questo:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Routing;
using Microsoft.AspNet.FriendlyUrls;
namespace @default
{
public static class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}
}
}