Κατασκευάζω μια εφαρμογή ιστού χρησιμοποιώντας το Visual Studio 2012. Προσπαθώ να προσθέσω τον αριθμό των λέξεων στο πλαίσιο κειμένου μου. Ωστόσο, μετά την προσθήκη των κωδικών javascript και των κωδικών html. Λαμβάνω το σφάλμα όπως αναφέρεται παραπάνω.
Εδώ είναι οι κώδικες javascript μου
Κωδικός :
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, "");
}
Κωδικοί διακομιστή στην κεντρική σελίδα
<script type="text/javascript" src="js/JScript.js" ></script>
ASPX codes, ( Html codes )
<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>
Χρειάζεστε ένα κλειδί web.config για να ενεργοποιήσετε τη λειτουργία επικύρωσης πριν από την έκδοση 4.5.
Περισσότερες πληροφορίες στο ValidationSettings:UnobtrusiveValidationMode:
Καθορίζει τον τρόπο με τον οποίο το ASP.NET ενεργοποιεί συνολικά τα ενσωματωμένα στοιχεία ελέγχου επικύρωσης. να χρησιμοποιεί μη διακριτική JavaScript για τη λογική επικύρωσης από την πλευρά του πελάτη. >, Τύπος: UnobtrusiveValidationMode >, Προεπιλεγμένη τιμή: >, Παρατηρήσεις: Εάν αυτή η τιμή κλειδιού έχει οριστεί σε "None" [προεπιλογή], το ASP.NET θα χρησιμοποιήσει τη συμπεριφορά πριν από την έκδοση 4.5 (JavaScript inline σε τις σελίδες) για τη λογική επικύρωσης από την πλευρά του πελάτη. Εάν αυτή η τιμή κλειδιού έχει οριστεί σε "WebForms", το ASP.NET χρησιμοποιεί HTML5 data-attributes και late bound JavaScript από μια πρόσθετη αναφορά δέσμης ενεργειών για την επικύρωση από την πλευρά του πελάτη. λογική. >, Παράδειγμα: >, >, <appSettings>, <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />, </appSettings>,
Αντί να απενεργοποιήσω μια νέα λειτουργία, επέλεξα να ακολουθήσω τις οδηγίες του σφάλματος. Στο αρχείο global.asax.cs πρόσθεσα:
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"
});
}
Αυτό προέρχεται από ένα msdn blog post το οποίο υπογραμμίζει μερικά από τα πλεονεκτήματα της αντιστοίχισης πόρων δέσμης ενεργειών. Ιδιαίτερο ενδιαφέρον για μένα είχε ο κεντρικός έλεγχος της παράδοσης των αρχείων δέσμης ενεργειών με βάση τα "debug=true", EnableCDN, κλπ.
Η διακριτική επικύρωση είναι ενεργοποιημένη από προεπιλογή στη νέα έκδοση του ASP.NET. Η διακριτική επικύρωση στοχεύει στη μείωση του μεγέθους της σελίδας αντικαθιστώντας την inline JavaScript για την εκτέλεση της επικύρωσης με μια μικρή βιβλιοθήκη JavaScript που χρησιμοποιεί την jQuery.
Μπορείτε είτε να την απενεργοποιήσετε τροποποιώντας το web.config ώστε να συμπεριλάβει τα εξής:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
Ή ακόμα καλύτερα να το ρυθμίσετε σωστά τροποποιώντας τη μέθοδο Application_Start στο αρχείο 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"
}
);
}
Η σελίδα 399 του βιβλίου Beginning ASP.NET 4.5.1 in C# and VB παρέχει μια συζήτηση σχετικά με το όφελος της διακριτικής επικύρωσης και μια διαδικασία για τη διαμόρφωσή της.
Για όσους αναζητούν το RouteConfig. Προστίθεται αυτόματα όταν κάνετε ένα νέο έργο στο visual studio στο φάκελο App_Code. Τα περιεχόμενά του μοιάζουν κάπως έτσι:
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);
}
}
}