【问题标题】:Cannot select value of a textbox inside of gridview无法选择gridview内的文本框的值
【发布时间】:2014-03-18 16:07:39
【问题描述】:

我的网格视图在 TemplateField 中有一个文本框。单击按钮时,我正在尝试获取文本框的值:

这是我定义文本框的地方:

<ItemTemplate>
         <asp:TextBox runat="server" ID="txtEmail" Text='<%#Eval("CustEmail") %>' />
         <asp:Button id="btnUpdate" Text="Update Email" ButtonType="Button" CommandName="UpdateEmail" 
               ValidationGroup="grpEmail" 
               Visible="true" runat="server"
               OnClientClick="ValidateEmail()" />

         </ItemTemplate>
</asp:TemplateField>

这是我的javascript:

        function ValidateEmail()
        {
           var email = $(this).closest('tr').find('#txtEmail').val();
           alert(email);
        }

我的alert 框显示“未定义”

这里的正确做法是什么?

谢谢

【问题讨论】:

  • 我认为“this”在这种情况下没有任何意义。尝试把 $('#btnUpdate').click(function() { ValidateEmail($this); });在 js 文件中并更改 ValidateEmail 以获取参数“affected”之类的,然后让“...email = $(affected)...” 我认为这应该可以解决问题。

标签: javascript jquery gridview textbox


【解决方案1】:

由于id 是唯一的,您可以使用:

var email = $('#txtEmail').val();
alert(email);

【讨论】:

  • 我已经试过了。我的警报中出现“未定义”。电子邮件字段是 GridView 的一部分,在 TemplateField 内部定义,如我的代码示例所示
【解决方案2】:

$(this) 在这样的函数中没有任何意义,如果你想引用 $(this),你应该使用事件监听器:)

通过 $('#txtEmail') 直接引用您的字段

【讨论】:

  • 我有OnClientClick事件触发``ValidateEmail`
  • 是的,对应经典点击事件
猜你喜欢
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 2015-11-27
  • 1970-01-01
相关资源
最近更新 更多