Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery代码在aspx中不起作用_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript jquery代码在aspx中不起作用

Javascript jquery代码在aspx中不起作用,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我试图创建一个文本框,当用户在文本框中键入时,下面的标签会显示使用jquery剩下的字符数 当我在常规html页面中尝试下面的jquery代码时,它按预期工作。。但是,当我尝试在我的aspx页面中这样做时,它不会更新标签 我是jquery的初学者,所以我不确定我是否遗漏了一些东西。。有人能给我指路吗 <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageToolkitScriptManager.master" AutoEve

我试图创建一个文本框,当用户在文本框中键入时,下面的标签会显示使用jquery剩下的字符数

当我在常规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>

$(文档).ready(函数(){
$('').keyup(函数(){
var x=$('').val().length;
//警报(x);
变量y=10;
$('').text(“长度平衡:+(y-x));
如果((y-x)<0){
$('').html(“太多”);
$('').val($('').val().substring(0,10));
}
});
});

考虑一个普通的基于jQuery ID的选择器:

$("#myElementID");
$('<%= inp1.ClientID %>')
现在,看看您的选择器:

$("#myElementID");
$('<%= inp1.ClientID %>')
你应该准备好了


备选答案:

看看这个文本框:

<asp:Textbox runat="server" id="MyTextbox" ClientIDMode="static"></asp:Textbox>

注意我如何添加了
clientmode=“static”
。这告诉ASP在不改变ID的情况下呈现控件。这意味着您只需在jQuery中使用选择器
$(“#MyTextbox”)
,它就会找到文本框


注意:不要在重复容器中的元素(如GridView或Repeater)上使用此选项。因为ID必须是唯一的,如果要复制此文本框,则需要ID不同。在这种情况下,考虑使用<代码> clitdMODE=“可预测”< />代码,而不是将索引添加到ID中,如<代码> MyTrimBox x,<代码> MyTrimBox x2/代码>等

@ PSJ01:另一条建议:如果您不使用重复的元素(如内部GRIDVIEW或中继器),请注意,存在一个名为
clientdmode
的ASP条件。如果将其设置为
static
,则ClientID将完全按照您在ASP中声明的方式呈现。因此,例如,一个带有
id=“myTextBox”ClientIDMode=“static”
的文本框将实际呈现在带有id
myTextBox
的页面上。在jQuery中不再需要服务器标签了!还有,如果你不介意我问的话。。为什么我需要“$(document).ready(function(){}”并在其中包含键控代码..如果没有,它将无法工作..
document.ready
告诉代码等待页面加载完成。之后的行告诉代码“查找此元素,并将此键控事件添加到其中”。但是,如果您不等待页面加载,则元素尚未加载,因此当您说“将keyup事件添加到某个或某个元素”时这样,就不会应用任何事件了c:我只是将ClientIDMode改为静态,重新编写了代码,它就可以工作了。这比使用它好得多。非常感谢。另外,我会移动所有的
标记(jquery插入,以及代码本身)进入您的
contentplaceholder头部
,而不是
contentplaceholder主体