Je construis une application Web à l'aide de Visual Studio 2012. J’essaie d’ajouter le nombre de mots dans ma zone de texte. Cependant, après avoir ajouté les codes javascript et les codes html. Je reçois l'erreur mentionnée ci-dessus.
Voici mes codes javascript
Code :
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, "");
}
Codes du serveur dans la page principale
<script type="text/javascript" src="js/JScript.js" ></script>
Codes ASPX, ( codes 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>
Vous avez besoin d'une clé web.config pour activer le mode de validation pré 4.5.
Plus d'informations sur [ValidationSettings:UnobtrusiveValidationMode][1] :
Spécifie la façon dont ASP.NET active globalement les contrôles de validateur intégrés d'utiliser le JavaScript discret pour la logique de validation côté client.
Type : UnobtrusiveValidationMode
Valeur par défaut : None
Remarques : Si la valeur de cette clé est définie sur "None" [valeur par défaut], l'application ASP.NET utilisera le comportement pré-4.5 (JavaScript en ligne dans les pages) pour les clients. les pages) pour la logique de validation côté client. Si la valeur de cette clé est définie sur "WebForms", ASP.NET utilise les attributs de données HTML5 et le JavaScript en retard JavaScript d'une référence de script ajoutée pour la validation côté client. logique côté client.
Exemple :
Plutôt que de désactiver une nouvelle fonctionnalité, j'ai choisi de suivre les instructions de l'erreur. Dans mon global.asax.cs j'ai ajouté :
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"
});
}
Ceci provient d'un [msdn blog post][1] qui souligne certains des avantages des mappages de ressources de script. Ce qui m'intéresse particulièrement, c'est le contrôle centralisé de la livraison des fichiers de script en fonction de "debug=true" ;, EnableCDN, etc.
[1] : https://devblogs.microsoft.com/aspnet/asp-net-4-5-scriptmanager-improvements-in-webforms/
La validation discrète est activée par défaut dans la nouvelle version d'ASP.NET. La validation discrète vise à réduire la taille de la page en remplaçant le JavaScript en ligne pour effectuer la validation par une petite bibliothèque JavaScript qui utilise jQuery.
Vous pouvez la désactiver en modifiant le fichier web.config pour y inclure les éléments suivants :
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
Ou mieux encore, le configurer correctement en modifiant la méthode Application_Start dans 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 page 399 de l'ouvrage Beginning ASP.NET 4.5.1 in C# and VB présente une discussion sur les avantages de la validation discrète et un guide pour la configurer.
Pour ceux qui recherchent RouteConfig. Il est ajouté automatiquement lorsque vous créez un nouveau projet dans Visual Studio dans le dossier App_Code. Le contenu ressemble à quelque chose comme ceci :
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);
}
}
}