2009-06-01 12 views
1

私はjQueryを学ぼうとしていますが、実際にJavaScriptを知らないのでゆっくりと進みます。テキストの検索とその存在に基づく操作

私のサイトはVB.NETにあり、私は実際に.ascxUserControlと別ファイル(何かmyscripts.jsのようなもの)にjQueryコードを入れています。これは私がMVCを実装するのに十分なことがまだ分かっていないのでwebformsを使用しているためです。したがって、私はページ上にclientIDを取得する必要があります。私がやりたい何

は以下の通りです:テキストボックスから

  1. グラブテキストと作るそれをすべて小文字
  2. ログイン情報からユーザ名を取得します。私は実際のページでこれをそうしています:

    var userName = "<%=Split(System.Web.HttpContext.Current.User.Identity.Name.ToLowerInvariant, '|')%>"; 
    
  3. ユーザー名が本文に含まれているかどうかを確認してください。テキスト内にある場合は、変数を「false」に設定し、それ以外の場合はtrueに設定します。

どうすればよいですか?

答えて

4

が、私はそれのASP.NET側の完全に無知ですが、限りjQueryとJavaScriptなど....

テキストフィールドの値を取得するには、あなたはjQueryの機能val()使用:

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

以降:小文字に文字列を有効にするには

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

を、あなたは文字列のメソッドtoLowerCase()を使用しますval()は最後にそれを投げることができる文字列を返します。

文字列が別の文字列内にあるかどうかを確認するには、あなたは文字列メソッドindexOf()使用:

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

ああ...これは参考になりました、ありがとう! – Jason

0

JQueryの基本的なことは次のとおりです。dom要素のリストを検索し、それらに対してアクションを実行します。

あなたのケースでは、あなたのテストボックスであるdom要素を見つけることから始めてください。たとえば、$( '#userName')を選択します。 selector#は "id"を意味し、 "userName"という名前とともに、 "userName"というIDを持つすべての要素を見つけます。

このリスト(この場合は1つの要素のリスト)を取得したら、その値が何であるかを尋ねることができます。
$( '#userName')。val()

これは、入力タグの値= ""属性の値を取得します。

これを変数に割り当て、標準のJavaScript文字列関数を使用して残りの処理を行うことができます。

+0

文字列関数:\ – 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; 

短い説明:

$('#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) 

JavaScript String object reference at w3schoolsを参照してください。

代替(テキストボックスの値ユーザ名と等しいかどうかを確認するために):

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

は、それがユーザー名を含んでいるかどうか、またはユーザー名を確認しますか?テキストフィールドには他のテキストが含まれています...ユーザー名が文字列全体に含まれていることを確認したいのですが... – Jason

+0

これは、テキストボックスの値が*ユーザー名かどうかを確認します。 *私はユーザ名を含んでいるかどうかを確認する代替案を投稿します。 – Tomalak

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

を覚えておくべきもう一つは、ASP.NETは、すべてのコントロールIDの名前を変更していることです。 JavaScriptでコントロールにアクセスするには、コントロールID <%= txtUserName.ClientID%>の代わりに以下を使用する必要があります。

jQueryでは、ID「txtUserName」を持つテキストボックスのセレクタは次のようになります。私は推測する問題の一部だ...私は本当に標準のJavaScriptを知らない

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

お楽しみください、

ザック

+0

はい、私はすでにこれをやっています。これは役に立つヒントです、ありがとう! – Jason

関連する問題