2016-03-03 4 views
0

У меня есть следующая таблица:Получить значение из элементов из таблицы

<table id="table_id"> 
    <tr> 
     <td>Test</td> 
     <td>Description</td> 
     <td>Date</td> 
    </tr> 
    <tr> 
     <td><select> 
      <option val="1">Math</option> 
      <option val="2">Chemistry</option> 
      <option val="3">Biology</option> 
      </select></td> 
     <td><input type="text" id="txt_desc"/></td> 
     <td><input type="text" id="date"/></td> 
    </tr> 
</table> 

И следующий яваскрипта код для получения значений

val_test_op = '';   
parent.$('#table_id option:selected').each(function (index,value){ 
    test = $.text(value).trim(); 
    if (index === 0 && test || index % 1 === 0 && test) { 
     val_test_op += index +' TEST: ' + test; 
     return; 
    }      
}) 

val_test_input = ''; 
parent.$('#table_id td>input').each(function (index,value){ 
test = this.value; 
    if (index === 0 && test || index % 2 === 0 && test) { 
     texto_examen_input += index +' Description: ' + test; 
     return; 
    } 
    if (index === 1 && test || index % 3 === 0 && test) { 
     texto_examen_input += index +' Date: ' + test; 
     return; 
    } 
}) 

Мой вопрос: ¿Как я могу получить значение из option: выбрано и вводит текст только в «каждой функции»?

+0

Прикрепите его в форме и выполните '$ (form) .serialize()' – adeneo

ответ

0

Я не думаю, что вам нужно each Функция для получения значений из полей в таблице.

Если вы добавите id s в поля, вы можете выбрать их непосредственно с помощью jquery, а затем использовать функцию val, чтобы легко получить их значения.

<table id="table_id"> 
    <tr> 
     <td>Test</td> 
     <td>Description</td> 
     <td>Date</td> 
    </tr> 
    <tr> 
     <td><select id="txt_test"> 
      <option val="1">Math</option> 
      <option val="2">Chemistry</option> 
      <option val="3">Biology</option> 
     </select></td> 
     <td><input type="text" id="txt_desc"/></td> 
     <td><input type="text" id="txt_date"/></td> 
    </tr> 
</table> 

Затем с JavaScript:

val_test_op = $('#txt_test').val(); 
texto_examen_desc = $('#txt_desc').val(); 
texto_examen_date = $('#txt_date').val(); 

Если вы действительно хотите использовать одну each функцию, чтобы получить все значения, можно использовать селектор :input, что JQuery обеспечивает и выполните следующие действия:

values = ''; 
$('#table_id').find(':input').each(function (index, input) { 
    values += $(input).val(); 
}); 
+0

Спасибо !. Теперь у меня есть лучшая идея для решения моего вопроса. – Pabloco

0

Я добавил кнопку, чтобы узнать, какое значение выбрано.

function myFunction(){ 
    var theSelect = document.getElementById("table_id").getElementsByTagName("select")[0]; 
    var selectedOption = theSelect.options[theSelect.selectedIndex].text; 
    alert(selectedOption); 
} 

document.getElementById("myButton").addEventListener("click", myFunction, false); 

https://jsfiddle.net/e1hxn6kL/

0

Дайте выберите идентификатор, такой как идентификатор = "выбирает"

Тогда

var opts = []; 
$.each($("#opts:selected"),function(opt){ 
    opts.push(opt.Val()); 
} 
var txt_desc = $("#txt_desc").Val(); 
var date = $("#date").Val(); 

или аналогичный

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