Вы не предоставили всю необходимую информацию в вопросе, поэтому я работаю над вашим вопросом на днях.
По крайней мере, часть проблемы связана с getElementsByTagName('input')
, поскольку она включает кнопку submit
, у которой нет идентификатора.
Итак, когда вы доберетесь до:
var option_parts = optionsList[i].getAttribute("id").split("_");
Вы пытаетесь сделать .split()
на null
.
Если вы исключите элементы в цикле, у которых нет идентификатора, это сработает:
for (var i = 0; i < optionsList.length; i++) {
// if no ID, continue to the next item
if( !optionsList[i].id ) continue;
var option_parts = optionsList[i].getAttribute("id").split("_");
Примечание. Пожалуйста, включите соответствующую информацию в вопросе. Это экономит каждому время.
Вот jsFiddle вашего кода в действии. Это обновлено от скрипки, которую я отправил прежде. Вы можете использовать его, если у вас есть будущие вопросы относительно этого кода.