Лично я бы использовал массив (список) для флажков и карту для входных текстов. Вы должны учитывать тот факт, что флажки не отправляются по запросу, если они не выбраны, но все ваши входные тексты всегда отправляются. Итак, сопоставьте значение флажка с параметром map входного текста, например:
<input type="checkbox" name="ckName" value="val1" ../>
<input type="text" name="mapMethod(val1)" ../>
<input type="checkbox" name="ckName" value="val2" ../>
<input type="text" name="mapMethod(val2)" ../>
<input type="checkbox" name="ckName" value="val3" ../>
<input type="text" name="mapMethod(val3)" ../>
...
Это означает, что у вас всегда будет карта со всеми значениями:
val1 = "textbox 1 value"
val2 = "textbox 2 value"
val3 = "textbox 3 value"
...
, а также список выбранных флажков, которые могут быть:
[val1]
[val1, val2]
[val1, val2, val3]
... different combinations or []
Затем вы сохраняете значения текстового поля на карте только для ключей, которые находятся в вашем списке значений флажков.
P.S. Не забудьте также сбросить флажки .