Я думаю, из краткого теста скрипки, что проблема заключается в смешении обычных обработчиков событий jQuery и обработчика onclick
, который вы определяете в строке тега (ваша функция save
).
Я не уверен, что вы пытаетесь сделать в save
; each
вызов ничего не делает:
$('.hexen').each(function () {
var id = null; // all this does is set a local variable
});
но, что более важно, то, как вы настроили это с помощью onclick
, this
, будет неопределенным, поэтому следующая строка не будет работать:
if ($(this).val() !== '') {
В этом контексте this
относится к объекту window
, поэтому я думаю, что именно поэтому вы получаете ошибку. Чтобы исправить это, вы должны обработать функцию сохранения в обработчике кликов, назначенном jQuery:
$('.saveButton').hide()
.click(function () {
$(this).hide(); // removes ui icon on click
var id;
// get the associated input
var $input = $(this).prev('.hexen');
if ($input.val() !== '') {
id = $input.attr('id');
}
console.log(id);
// presumably, do something with id now...
});
См. рабочую скрипку .