我正在尝试学习jQuery,但它的发展很慢,因为我真的不知道任何JavaScript。
我的网站是在VB.NET中,我将jQuery代码放在我的实际.ascx
UserControl
和单独的文件(类似myscripts.js
)中。这是因为我正在使用webforms,因为我仍然不太了解MVC,所以我必须在页面上获取clientID。
我想做的是以下内容:
从登录信息中获取用户名。我在我的实际页面上这样做了:
var userName = "<%=Split(System.Web.HttpContext.Current.User.Identity.Name.ToLowerInvariant, '|')%>";
检查用户名是否在文本中。如果它在文本中,我想将变量设置为“false”,否则设置为true。
我该怎么做?
答案 0 :(得分: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
答案 1 :(得分: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;
答案 2 :(得分:1)
要记住的另一件事是ASP.NET重命名所有控件ID。要在JavaScript中访问您的控件,您应该使用以下代码来代替Control ID&lt;%= txtUserName.ClientID%&gt;。
在jQuery中,这是我的选择器对于ID为“txtUserName”的文本框的样子。
$('#&lt;%= txtUserName.ClientID%&gt;')
享受,
扎克
答案 3 :(得分:0)
JQuery的基础知识是这样的:查找dom元素列表,并对它们执行操作。
在您的情况下,您应该首先找到作为测试框的dom元素。例如,我们选择$('#userName')。选择器#表示“id”,与名称“userName”一起,它找到id为“userName”的所有元素。 (如果您遵循最佳实践,页面上的ID应该是唯一的。)
一旦你有了这个清单(在这种情况下,是一个元素的清单),你可以问它是什么价值。
$( '#用户名')。VAL()
这可以获得输入标记的value =“”属性的值。
然后,您可以将其分配给变量并使用标准的javascript字符串函数来完成剩下的工作!
答案 4 :(得分:0)
function checkLogin(userName){
return $('#mytextbox').val().toLowerCase() == userName
}
答案 5 :(得分:0)
if ($("#textBoxID").val()) != "") { /*Do stuff*/ }