dotNet Zombie
dotNet Zombie

Reputation: 134

Trying to get value from textbox in column in table

I dynamically created a table with three columns.

<tr>
  <td>1</td>
  <td>SegName</td>
  <td><input type='text' /></td>
</tr>

I'm trying to write a function that goes through each row and grabs the value in that will be in the textbox.

Javascript:

$("#codeSegmentBody").children().eq(x).children().eq(2).val();

The code brings brings up undefined when I do val(), but if I do html it'll grab the html of the textbox.

How can I get this to bring me the value?

Upvotes: 2

Views: 2822

Answers (7)

Lazarus
Lazarus

Reputation: 43084

You are referencing the containing <td> not the input. Try:

$("#codeSegmentBody").children().eq(x).find(":text").val();

Upvotes: 1

ShankarSangoli
ShankarSangoli

Reputation: 69915

Try this

$("#codeSegmentBody tr").each(function() {
    alert($(this).find("input").val());
});

Upvotes: 1

Goran Mottram
Goran Mottram

Reputation: 6304

$("#codeSegmentBody tr input[type='text']").each(function(){
    alert($(this).val());
})

Upvotes: 1

Josh
Josh

Reputation: 12566

<table id="test">
    <tr>
        <td>
            <input type="text" value="123">
        </td>
    </tr>
    <tr>
        <td>
            <input type="text" value="abc">
        </td>
    </tr>
</table>

<script type="text/javascript">
$(document).ready(function(){

    $("#test").find(":input[type=text]").each(function(){

        alert( $(this).val() );

    }); 

});
</script>

Here is a fiddle that will get you there:

http://jsfiddle.net/uS8AK/

Upvotes: 3

Rory McCrossan
Rory McCrossan

Reputation: 337580

Assuming #codeSegmentBody is the name of your table, try this:

$("#codeSegmentBody td input").each(function() {
    var inputValue = $(this).val();
    alert(inputValue);
});

Example fiddle

Upvotes: 1

giker
giker

Reputation: 4245

Not easier

$("table tr td input").val();

?

BTW. You don't have any value in this input anyway.

Upvotes: 0

ComFreek
ComFreek

Reputation: 29424

var str = "";
$("#codeSegmentBody .third-column input").each(function()
{
  str += this.value;
});
alert(str);

Upvotes: 0

Related Questions