0

I have TextBox inside GridView's ItemTemplate. I assigned it CssClass to grdtxtbox and trying to get their values using .val()

My aspx code is as below

<asp:TemplateField HeaderText="No. Of Days">

    <ItemTemplate>
               <asp:TextBox ID="txtDays" runat="server" CssClass="grdtxtbox"></asp:TextBox>
    </ItemTemplate>
</asp:TemplateField>

and JQuery as below

var  leaveTextBoxes = $(".grdtxtbox");
            for (var i = 0; i < leaveTextBoxes.length; i++) {
                alert(leaveTextBoxes[i].val());
            }

I can alert(leaveTextBoxes[i].length) length properly, means code looks fine but .val() is not working. Error on this line is Undefined is not a function nor I am getting .val() in intellisense.

Update However .value is working fine there. What the problem with .val()?

Imad
  • 7,126
  • 12
  • 55
  • 112

2 Answers2

0

try using this but I'm not sure:

$("#Gridid .grdtxtbox").each(function() {
    alert($(this).val());
});
Mohamad Shiralizadeh
  • 8,329
  • 6
  • 58
  • 93
0

Use the eq selector to select the nth element, as shown in this answer: How to get nth jQuery element

for(i=0; i<leaveTextBoxes.length; i++){
    alert(leaveTextBoxes.eq(i).val());
}

Alternatively,

for(i=0; i<leaveTextBoxes.length; i++){
    alert(leaveTextBoxes.get(i).value); //plain-old-js
    alert($(leaveTextBoxes.get(i)).val()); //dirty but works
}
Community
  • 1
  • 1
balanza
  • 1,059
  • 1
  • 12
  • 34