2013-07-02 2 views
0

У меня есть список флажков, который отображает список идентификаторов учетной записи для сотрудников для получения отдельных записей.Как динамически получить значение из списка флажков

<c:forEach var="id" items="${accountList}" varStatus="status"> 
<input type="checkbox" name="account_id" value="${id}"/> 
</c:forEach> 

Имя = account_id объявляется как список массивов строк.

После выбора я отправлю результаты в форму struts и сохранит результаты в списке массивов строк. В сценарии отправки мне нужно проверить длину выбора идентификатора учетной записи и добавить в файл count.finally значения в форму.

Как добиться этого Незлого кто поможет ..

Благодаря

+0

Я новичок в использовании этого форума - Есть ли что-то не так с вопросом или мне нужно быть более сложными. Любая помощь приветствуется. – jaggs

ответ

0

Когда вам нужно количество значений выбранного, вы можете иметь следующие два подхода.

  • Когда запрос HTTP содержит имя с несколькими значениями (в вашем случае account_id), затем список передается как разделенный запятыми список значений против этого имени. API-интерфейсы сервлетов предлагают очень удобный метод извлечения значений.

    String accountIds = request.getParameterValues("account_id");

Это поможет вам массив, содержащий список учетных записей идентификаторам. Длина массива (accountIds.length) должна указывать количество выбранных учетных записей.

  • В качестве альтернативы, вы можете отслеживать идентификаторы учетных записей, выбранных с помощью JavaScript. При каждом выборе флажка приращение a counter, которое установлено как form hidden-field. Когда форма отправляется, скрытые поля могут быть получены в качестве параметра запроса.
+0

Привет, святой, спасибо за ваш ответ. Можете ли вы объяснить пример? – jaggs

+0

Я перечислил два подхода, на которые вам нужна помощь? – Santosh

+0

Я предпочитаю второй, который будет использоваться. – jaggs

0
function updateTextArea() {   
     var allVals = []; 
     $('input:checkbox[name=checkbox_name]:checked').each(function() { 
     allVals.push($(this).val()); 
     }); 
     $('#hidden_value').val(allVals); 
} 
$(function() { 
     $('input:checkbox[name=checkbox_name]').click(updateTextArea); 
     updateTextArea(); 
}); 

«checkbox_name» это имя флажка

allVals.push($(this).val()); 

Это подтолкнет значение флажка, скрытое с идентификатором «hidden_value» , если вам нужно вставить «идентификатор» в флажком вместо значения затем

allVals.push($(this).attr('id')); 

Так что вам нужно поместить поле ввода скрытое с именем и идентификатором в виде

Затем на странице действий вы получите значение из этого поля ввода. разделите это на «,» разделитель, вы получите один массив. Содержимое массива будет значением, которое вы отметили, и размер даст вам количество элементов.

В противном случае

checked_count = $('[name="checkbox_name[]"]:checked').length 

перед тем форма представления вычислить это и хранить в скрытом поле

$("#hidden_id").val(checked_count) 

Получить значение из скрытого поля в странице действий.

+0

Привет, Пикрут, я попробую ваш пример. Я дам вам знать результат. Спасибо. – jaggs

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