2013-01-15 4 views
1

Я использую jquery, пытаясь получить значение ввода текста, но он не работает. может ли кто-нибудь увидеть, что я делаю неправильно? http://jsfiddle.net/silvajeff/4Sb8K/3/jquery не может получить значение из входного элемента (2)

<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); 
}); 
+0

+1 для JSFiddle –

ответ

2

Вы можете упростить селектор #oustandingItems tr input[value!=""]

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

JSFiddle

0

Вы можете попробовать это одно: http://jsfiddle.net/4Sb8K/6/

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

Ваш селектор, чтобы найти InputBox с значение неправильно.

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

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

BTV, метод .val() возвращает только значение первого элемента, если селектор соответствует несколько элементов. Если вам нужно пройти все элементы, используйте метод .each().

Смежные вопросы