我想要一个文本框,在用户在文本框中键入下面的标签时,会读取使用jquery留下多少个字符。jquery代码不能在aspx中工作
当我试图在常规的HTML页面下面的jQuery代码,它按预期工作..但是当我尝试在我的ASPX页面做它不会更新标签。
我是一个初学者jQuery的,所以我不知道如果我在这里失去了一些东西..是否有人可以指导我在正确的方向..
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageToolkitScriptManager.master" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="DotNet_test" %>
<%@ Register TagPrefix="uc" TagName="WebUserControl"
Src="~/Controls/WebUserControl.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolderHead" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolderBody" Runat="Server">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('<%= inp1.ClientID %>').keyup(function() {
var x = $('<%= inp1.ClientID %>').val().length;
//alert(x);
var y = 10;
$('<%= p1.ClientID %>').text("Len balance : " + (y - x));
if ((y - x) < 0) {
$('<%= p1.ClientID %>').html("too much");
$('<%= inp1.ClientID %>').val($('<%= inp1.ClientID %>').val().substring(0, 10));
}
});
});
</script>
<asp:TextBox ID="inp1" runat="server"></asp:TextBox>
<asp:Label ID="p1" runat="server" Text=""></asp:Label>
<%--<input id="inp1">
<button id="b1">Click</button>
<p id="p1"></p>--%>
</asp:Content>
天哪!这工作。非常感谢! – psj01
@ psj01另一条建议:如果你没有使用会重复的元素(比如在gridviews或repeater里面),请注意有一个名为'ClientIDMode'的ASP条件。如果你将它设置为'static',那么当你在ASP中声明它时,ClientID将完全呈现**。因此,例如,带有id =“myTextBox”ClientIDMode =“static”'的文本框实际上将在ID为myTextBox的页面上呈现。不再需要jQuery中的服务器标签了! – Santi
也,如果你不介意我问..为什么我需要“$(文档).ready(函数(){}”,并有密钥在里面的代码..如果我没有,它不会工作.. – psj01