silvster27
silvster27

Reputation: 1936

jquery can't get the value from an input element (2)

I am using jquery trying to retrieve the value of a text input but it is not working. can anyone see what I am doing wrong? http://jsfiddle.net/silvajeff/4Sb8K/3/

<table id="oustandingItems">
  <tr><th>Category</th></tr>
  <tr><td><input name="mytest" /></td></tr>
  <tr><td><input name="mytest" value="123"/></td></tr>
  <tr><td><input name="mytest" /></td></tr>
  <tr><td><input name="mytest" /></td></tr>
</table>


<button id="findRow">Find Row</button>
<input type="text" id="myRow" />

$("#findRow").click(function() {   
  var tableRow = $('#oustandingItems tr:has(td input[value!=""])').prevAll().length;  
 var myValue = $('#oustandingItems input:has(td input[value!=""])').val();
  $("#myRow").val(myValue);
});

Upvotes: 1

Views: 2635

Answers (3)

user1902830
user1902830

Reputation:

Your selector to find the inputbox with value is wrong.

- var myValue = $('#oustandingItems input:has(td input[value!=""])').val();

+ var myValue = $('#oustandingItems input[value!=""]').val();

BTW, .val() method only returns the value of the first element, if your selector matches multiple elements. If you need to traverse all elements, use .each() method.

Upvotes: 0

Jai
Jai

Reputation: 74738

You can try this one: http://jsfiddle.net/4Sb8K/6/

$("#findRow").click(function() {   
  var myValue = $('#oustandingItems').find('input[value!=""]').val();
  $("#myRow").val(myValue);
});

Upvotes: 0

Olaf Dietsche
Olaf Dietsche

Reputation: 74028

You can simplify your selector to #oustandingItems tr input[value!=""]

$("#findRow").click(function() {
  var myValue = $('#oustandingItems tr input[value!=""]').val();
  $("#myRow").val(myValue);
});

JSFiddle

Upvotes: 2

Related Questions