2016-05-17 2 views
-1

Я хочу получить значение <td>. Я заполняю таблицу из базы данных, и я не могу получить значение определенного поля, используя его имя, потому что строки зацикливаются, и если я использую это имя, я получаю значение этого поля из первой строки. Так что, я написал мои JS, как это:Получить значение td таблицы с помощью javascript

function searchcatg(el2){ 
    var catel = $(el2); 
    var searchTxt = catel.val(); 
    //var brandval = $("input[name='brandid']").val(); 
    var brandval = $(el2).closest("tr").find('td:eq(7)').text(); 
    alert(brandval); 
    $.post("search-cat-brand-vw.php", {searchVal: searchTxt, brand:brandval}) 
    .done(function(catglist) { 

     $("#catglist").html(catglist); 
    }); 

} 

я получаю первое значение правильно, но значение brandval не правильно отображаться. В поле предупреждения отображаются некоторые нечитаемые символы, а в php я отправляю сообщение, он получает пробел. Это как brandid поле выглядит как

<td><input type="text" name="brandid" value="<?php echo $brandid; ?>" list="brandlist" id="output" onkeyup="searchbrand(this)" > 
     <datalist id="brandlist" name="taskoptionbrand"> 
       <option> </option> 
     </datalist> </td> 

с использованием .val() в var brandval говорит, что это не определено. Что я делаю?

+0

Я не уверен, что значение, которое вы ищете, но изменить 'searchbrand (это)' в 'searchbrand (this.value) ' –

+1

вам может потребоваться изменить на' $ (el2) .closest ("tr"). Find ('td: eq (7) input'). Val(); ' –

+1

@FrayneKonok, вот и все! Если вы можете опубликовать это как ответ, я могу принять –

ответ

1

TD никогда не содержат никакого значения, так что вы не можете использовать val() или value в нем. Вам нужно найти поле ввода в поле TD, а затем использовать val().

Как я прокомментирую это, вам нужно изменить в своей функции searchcatg. Найдите замену.

От

$(el2).closest("tr").find('td:eq(7)').text(); 

К

$(el2).closest("tr").find('td:eq(7) input').val(); 
0

использовать это:

var brandval = $('input[name="brandid"]').val(); 

вместо этого:

var brandval = $(el2).closest("tr").find('td:eq(7)').text(); 
+0

Я уже говорил, что это работает только для первой строки. –

+0

использовать функцию .each(), чтобы получить всю ценность; –

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