из-за разметки я должен был написать подпрограмму, которая проверяет, установлен ли хотя бы один флажок в определенной форме (в форме typo3, где вещи нужно проверять на 3 сайтах, которые можно переключать с помощью следующей кнопки, которая кнопка отправки - на каждом сайте должен быть проверен хотя бы один параметр). Процедура также обрабатывает diff. языки, так что это может быть переведено ...
Но почему-то IE (я пытался с IE11) выдает нулевую ссылку, когда достигается эта строка (но в Firefox это работает отлично):
if (elems[i].children[0].control['checked'] === true
вот вся рутина:
if(document.getElementById("pollFR") != null && document.getElementById("pollFR") != '' ){
document.getElementById("pollFR").addEventListener("submit", submitCheckboxHandler);
language = "FR"
}
//some more identical if-statements, because there is a form for every //language e.g. pollEN, etc.
function submitCheckboxHandler(ev) {
var elems = document.getElementsByClassName('form-check');
var elemCounter = 0;
var i;
for (i = 0; i < elems.length; i++) {
if (elems[i].children[0].control['checked'] === true)
elemCounter++;
};
if (elemCounter === 0) {
switch(language){
case "EN":
alert("Please choose at least one parameter!");
break;
case "FR":
alert("...french...");
default:
alert("...german...");
}
ev.preventDefault();
}
}
Кто-нибудь знает, почему это происходит?
Спасибо!
EDIT:
как было запрошено, сгенерированный HTML выглядит следующим образом (фрагмент):
<!-- language: lang-html -->
<div id="c332">
<form enctype="multipart/form-data" method="post" id="poll" [...] />
</div>
<h2>Gap-analysis</h2>
<input autocomplete="off" aria-hidden="true" id="poll-v3Bmj4bQKnD6hScEI" [...] name="tx_form_formframework[poll][v3Bmj4bQKnD6hScEI]" />
<fieldset id="poll-fieldset-1" class="form-group">
<legend>text:</legend>
<div class="row">
<div class="col-xs-4 col-sm-4 col-md-1 col-lg-4">
<div class="form-group">
<label class="control-label" for="poll-multicheckbox-1">text</label>
<div class="input checkbox">
<div id="poll-multicheckbox-1" class="inputs-list">
<div class="form-check">
<label class="form-check-label" for="poll-multicheckbox-1-0">
<input type="hidden" name="tx_form_formframework[poll][multicheckbox-1]" value="" /><input id="poll-multicheckbox-1-0" type="checkbox" name="tx_form_formframework[poll][multicheckbox-1][]" value="term" />
<span>term</span>
</label>
</div>
</div>
</div>
</div>
[......]
<div class="actions">
<nav class="form-navigation">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<span class="next">
<button class="btn btn-primary" type="submit" name="tx_form_formframework[poll][__currentPage]" value="1">Weiter</button>
</span>
</div>
</div>
</nav>
</div>
</form>
<!-- end snippet -->
каждый "опрос" станет похож на "pollEN" при переключении языка ...