/ / Javascript - попълване на текстови полета с отметка за стойност - javascript, jquery, html

Javascript - попълване на текстови полета със стойност в квадратчето - javascript, jquery, html

В моето уеб приложение съм поставил отметки в квадратчетата, които по време на проверката запълват текстово поле над тях.

Тези квадратчета с отметки се показват като редове в моята HTML таблица.

Ето моят HTML код.

<input type="text" id="newContactComment<%=rCount %>" name="newContactComment" size="45">

<input type="checkbox" id="commentText<%=rCount %>" name="commentText" value="<%=c.getComment_text() %>"
onclick="javascript:updateTextArea(<%=rCount%>);">

А съответната JS функция е както следва:

function updateTextArea(rCount) {
var allVals = new Array();
$("#contactInfo input["commentText" + rCount]:checked").each(function() {
(allVals).push($(this).val());
});

$("#newContactComment" + rCount).val(allVals);
}

Най- rCount променливата в горната функция е реда # на моята таблица. Използвайки това по-горе, не получавам очакваното поведение.
За ex. Ако за ред 1 на моята таблица, проверя chkbox 1 и 2, то правилно се попълва със стойности на тези квадратчета. Сега, за 2 от моята маса, проверявам само chkbox 3, той се населява с стойности 1,2 и 3, а не само 3, както очаквам.

Всяка помощ ще бъде много оценявана.

Отговори:

0 за отговор № 1

По-добре е да използвате jQuery, за да зададете манипулатор на събития, а не да го настроите инлайн.

Искате да използвате събитие onchange, а не събитие onclick.

Ако добавите имена на класове на квадратчета (или каквото искате) към квадратчетата за отметка, ще работи следното:

$("input.checkboxes").change(function(){ //when checkbox is ticked or unticked


var par = $(this).closest("tr")[0];
var parID = par.id;
var patt1=/([0-9]+)$/g;
var rCount = parID.match(patt1); //Gets number off end of id

var allVals = new Array();

//Get all checkboxes in current row that are checked
$(par).find("td input.checkboxes:checked").each(function() {
allVals.push($(this).val());
});

$("#newContactComment" + rCount).val(allVals);

allVals = null; //empty array as not needed

});

Вярвам, че това или нещо по този начин ще направи това, което искате


0 за отговор № 2

Опитвате се да използвате rCount променлива от цитирания низ. Опитайте това:

$("#contactInfo input["commentText" + rCount + ""]:checked")