【问题标题】:Calling JQuery when textbox had been change doesn't work更改文本框时调用 JQuery 不起作用
【发布时间】:2014-01-06 19:27:54
【问题描述】:

我希望文本框在文本/值更改时自动调用 jQuery。一开始,只读所有者文本框是空的。我只能选择名称,然后它会自动将名称粘贴到tbAdd_Powner 文本框。粘贴后,我希望它自动调用 jQuery 以从 tbAdd_Powner 文本框获取值并将其传递给 txtPass 文本框。例如,我选择 Joe,然后它将 Joe 粘贴到 tbAdd_Powner textbox,然后调用 jQuery 将 Joe 传递给 txtPass 文本框。

我尝试了下面的代码,但它不起作用。

这里是 jQuery 和 html 的例子,

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="testtest.aspx.cs" 
Inherits="testtest" EnableEventValidation="false" Async="true" MaintainScrollPositionOnPostback="true" %>



    <script language="javascript" type="text/javascript">
     $(function () {

    $('#tbAdd_Powner').on('input',function () {
    alert("It Changed!");
    $('#txtPass').val($('#tbAdd_Powner').val());
 });

});        </script>
    <asp:TextBox ID="tbAdd_Powner" runat="server" ClientIDMode="Static" Enabled="false"></asp:TextBox>

    <asp:TextBox ID="txtPass" runat="server" Width="163px"></asp:TextBox>

【问题讨论】:

  • 你包含了 jQuery 吗?
  • 你能做一个小提琴吗?
  • 是的,JQuery 链接存储在 ~/Site.master 中。我在上面编辑过。
  • 选择 Joe 后更改 tbAdd_Powner 文本的调用,这是否也可以更改 txtPass 的值,这样就不必进行额外的 jQuery 调用,或者有理由不这样做吗?跨度>
  • 只使用jQuery不是更好吗?您正在混合 jQuery 事件并使用常规 javascript DOM 设置进行设置。

标签: jquery asp.net


【解决方案1】:

这听起来像你需要input。另外,不要将 jQuery 与纯 JavaScript 混合使用:

$(function () {
  $('#tbAdd_Powner').on('input', function () {
       $('#<%=txtPass.ClientID%>').val($('#<%=tbAdd_Powner.ClientID%>').val());
  });
});

我不知道ClientID 有哪些值,但您可能需要# 选择器才能通过id 选择元素。

看看哪个是the difference between input and change

【讨论】:

  • 我试过这个例子,它根本不会触发,因为我在 tbadd_Powner 函数中添加了警报并且它从不发出警报。我用$('#tbAdd_Powner').on('input',function () { alert("It Changed!"); $('#txtPass').val($('#tbAdd_Powner').val();
  • @StudentIT txtPass.ClientID 有什么价值?您在页面中有任何错误吗?可能元素不存在。
  • txtPass 的值为空。页面没有错误。
  • @StudentIT 不是输入值,而是txtPass.ClientID 的值。我对 ASP .NET 不熟悉,但我想您需要查看输入的 id 有什么(使用浏览器网络检查器查看)。
  • @StudentIT 你找到答案了吗?
【解决方案2】:

因为 ID 与您所拥有的 ID 不同,这要归功于 .NET 重命名它们。

你需要做和&lt;%=tbAdd_Powner.ClientID%&gt;'一样的事情

又名:

$('#<%=tbAdd_Powner.ClientID%>').on(...

其他选项包括在 .NET 代码中使用类、部分选择器或静态选项。

【讨论】:

  • 另一种选择是在文本框上设置ClientIDMode="Static"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
相关资源
最近更新 更多