2009-06-01 2 views
1

Ich versuche, jQuery zu lernen, aber es kommt langsam, da ich wirklich kein JavaScript kenne.Suche nach Text und Durchführen von Operationen basierend auf seiner Existenz

Meine Website ist in VB.NET und ich stelle jQuery-Code sowohl auf meinem eigentlich .ascxUserControl und in einer separaten Datei (so etwas wie myscripts.js). Dies liegt daran, dass ich Webforms verwende, da ich MVC noch nicht gut genug kenne, um es zu implementieren, also muss ich die Client-IDs auf der Seite abrufen.

Was tun Ich mag würde, ist die folgende:

  1. Schnappen Sie Text aus einem Textfeld und machen es alle Klein
  2. den Benutzernamen aus der Login-Infos holen. Ich habe diese auf meine aktuelle Seite wie so getan:

    var userName = "<%=Split(System.Web.HttpContext.Current.User.Identity.Name.ToLowerInvariant, '|')%>"; 
    
  3. Überprüfen Sie, ob der Benutzername in dem Text. Wenn es im Text ist, möchte ich eine Variable auf "false" setzen, anders gesagt auf "true".

Wie mache ich das?

Antwort

4

Ich bin völlig unwissend über die ASP.NET Seite davon, aber so weit wie jQuery und Javascript ....

Um den Wert eines Textfeldes zu erhalten, können Sie die Funktion jQuery val():

var value = $('#mytextbox').val(); 

einen String zu drehen Fall zu verringern, verwenden Sie die Zeichenfolge Methode toLowerCase():

var value = $('#mytextbox').val().toLowerCase(); 

Seit val() gibt eine Zeichenfolge zurück, die wir am Ende werfen können.

Um zu überprüfen, ob eine Zeichenfolge innerhalb einer anderen Zeichenfolge ist, können Sie die String-Methode indexOf() verwenden:

var needle = 'Hello'; 
var haystack = 'Hello World'; 
var match = haystack.indexOf(needle); // -1 if no matches, 0 in this case 
+0

ahhh ok ... das ist hilfreich, danke! – Jason

0

Die Grundlagen von JQuery sind wie folgt: Suchen Sie eine Liste von Dom-Elementen und führen Sie Aktionen für sie aus.

In Ihrem Fall sollten Sie beginnen, indem Sie das Dom-Element finden, das Ihre Testbox ist. Zum Beispiel wählen wir $ ('# userName'). Der Selektor # bedeutet "id" und findet zusammen mit dem Namen "userName" alle Elemente mit der ID "userName". (IDs auf einer Seite sollten eindeutig sein, wenn Sie die Best Practices befolgen.)

Sobald Sie diese Liste (in diesem Fall eine Liste mit einem Element) haben, können Sie sie fragen, was der Wert ist.
$ ('# Benutzername'). Val()

Dies ruft den Wert des Attributs value = "" des Eingabe-Tags ab.

Sie können es dann einer Variablen zuweisen und Standard-Javascript-String-Funktionen verwenden, um den Rest zu erledigen!

+0

, dass ich denke, ein Teil des Problems ist ... ich weiß nicht wirklich Standard Javascript String-Funktionen: \ – Jason

1
var userName = "username as it comes out of your web app"; 

// stuff happens 

var $myTextbox = $('#ID_of_textbox'); 
var userNameIsContained = $myTextbox.val().toLowerCase().indexOf(userName) >= 0; 

Kurze Erklärung:

$('#ID_of_textbox') // fetches the jQuery object corresponding to your textbox 
.val()    // the jQuery function that gets the textbox value 
.toLowerCase()  // self explanatory 
.indexOf()   // returns the position of a string in a string (or -1) 

Siehe JavaScript String object reference at w3schools.

Alternative (überprüfen, ob der Wert Textbox gleich der Benutzername):

var userNameIsEqual = $myTextbox.val().toLowerCase() == userName; 
+0

wird überprüft, ob es den Benutzernamen enthält oder ist der Benutzername? das Textfeld wird anderen Text enthalten ... Ich möchte sicherstellen, dass der Benutzername innerhalb der gesamten Zeichenfolge ist ... – Jason

+0

Dies überprüft, ob der Textbox-Wert * der Benutzername ist. Ich werde eine Alternative posten, um zu überprüfen, ob * der Benutzername * enthält. – Tomalak

0
function checkLogin(userName){ 
    return $('#mytextbox').val().toLowerCase() == userName 
} 
0
if ($("#textBoxID").val()) != "") { /*Do stuff*/ } 
1

Eine andere Sache zu erinnern ist, dass ASP.NET alle Ihre Steuer IDs umbenennt. Um auf Ihre Steuerelemente in JavaScript zuzugreifen, sollten Sie Folgendes anstelle der Steuerelement-ID <% = txtUserName.ClientID%> verwenden.

In jQuery, hier ist, was mein Selektor für ein Textfeld mit der ID "txtUserName" aussehen würde.

$ ('# <% = txtUserName.ClientID%>')

Genießen,

Zach

+0

Ja, ich mache das schon. Das ist ein hilfreicher Hinweis, danke! – Jason

Verwandte Themen