我正在动态创建一个表,在表格中是图像,每个图像都有价值。单击库中的img后,它会将图像发送/复制到另一个表格单元格,并将值发送到INPUT。我正在检查此输入中的更改,我可以看到每次单击值更改但.change()
未运行后,应该是什么问题。
$(document).ready(function() {
var most;
var clickedTableCellAll;
var korpusMaterialNeed = 0;
$("#korpusChoose").on('click', '#TableKorpusGaleria tbody td', function() {
var clickedTableCell = $(this).text();
var clickedTableCellAll = $(this).html();
most = $.inArray(clickedTableCell, korpusArray);
clickedId = helperArray[most].id;
$("#helper_input_01").val(clickedId);
$("#helper_input_02").val(most);
cellClick(most, helperArray);
var setKorpusArray = $('#createTableKorpus > tbody > tr').map(function() {
return $(this).children().map(function() {
return $(this);
});
});
setSelectedCell = $("#helper_input_03").val();
var countSection = $('#createTableKorpus > tbody > tr > td').length;
var korpusId = most;
setKorpusArray[1][setSelectedCell].html(clickedTableCellAll);
console.log('===============================');
korpusMaterialNeed = (clickedKorpus(korpusId)) / 10000;
$("#priestor_mat_0" + (setSelectedCell)).val(korpusMaterialNeed);
console.log('input: ' + $("#priestor_mat_0" + (setSelectedCell)).val());
});
function cellClick(most, helperArray) {
var korpusId = most;
clickedKorpus(korpusId);
}
function clickedKorpus(korpusId) {
var currentKorpusCount = helperArray[korpusId].metadesc;
var currentKorpusPlus = helperArray[korpusId].metakey;
var sirka = $("#param_sirka").val();
var widthValues = calcWidthInterval(sirka);
var ddlText = $("#pocet_priestorov option:selected").text();
var widthSect = 0;
var newestOptions = calcSectionWidth(widthValues, sirka);
var currentKorpMaterial = 0;
var currentKorpusMaterial = 0;
$.each(newestOptions, function(i, value) {
if (value.all == ddlText) {
widthSect = value.val;
currentKorpusMaterial = ($("#param_hlbka").val() * widthSect) * currentKorpusCount;
// return currentKorpusMaterial;
}
else {
console.log('clickedKorpus >>> ERROR');
}
// var currentKorpMaterial = currentKorpusMaterial;
console.log('currentKorpusMaterial' + currentKorpusMaterial);
return currentKorpusMaterial;
});
console.log('korpusId >>> clickedKorpus >>>' + korpusId);
var currentKorpMaterial = currentKorpusMaterial;
console.log('currentKorpMaterial' + currentKorpMaterial);
return currentKorpMaterial;
}
$('#userForm').on('change', '#priestor_mat_01', function() {
alert('hi');
});
$("input#priestor_mat_01").change(function() {
alert('hi');
});
});
答案 0 :(得分:2)
以编程方式更新输入的值(例如使用.val()
函数)不会触发change
函数。您还需要使用.trigger()
函数以编程方式触发该函数:
$("#priestor_mat_0" + (setSelectedCell)).val(korpusMaterialNeed).trigger('change');
答案 1 :(得分:1)
以编程方式更改值时,它不会触发change
事件,请在更改值后调用change()
$('input').val(NEW_VAL).change()
答案 2 :(得分:0)
调用事件处理程序:
$('#someinput').change();
答案 3 :(得分:0)
在这种情况下必须触发事件更改。 .val()
不会触发更改事件。像.change()
这样链接它 -
$('input').val("value").change();
这将触发绑定到输入的更改事件处理程序。