I have the following code to populate a hidden field after a change or a keydown event for any form field on each input row:
$(".leave_row_0").bind("keydown change", function(e) {
$(".leave_hidden_0").val("1");
});
$(".leave_row_1").bind("keydown change", function(e) {
$(".leave_hidden_1").val("1");
});
$(".leave_row_2").bind("keydown change", function(e) {
$(".leave_hidden_2").val("1");
});
However, I will not know the total number of rows that will appear on the page at any given one time, so I need to write this dynamically. I have written a for loop to simplify things, but for some reason the code stops working when I try to execute it this way:
var k = 0;
for (k = 0; k < leave_requests.length; k++) {
$(".leave_row_" + k).bind("keydown change", function(e) {
$(".leave_hidden_" + k).val("1");
});
}
Any ideas about an extra ingredient that I might be missing?
Here is my html structure:
i = 0;
json[2].forEach(function(leave){
leave_requests.push(
'<div class="row">' +
'<div class="col-sm-2 low-padding-right">' +
'<input type="text" value="' + format_date(json[2][i]['leave_date'], 'leave') + '" name="leave_date[]" class="leave_row_' + i + ' form-control" readonly>' +
'</div>' +
'<div class="col-sm-1 low-padding">' +
'<select class="leave_row_' + i + ' form-control" name="day_part[]" id="day_part" style="width: 100%;">' +
'<?php foreach($dayparts as $daypart){ ?>' +
'<option value="{{ $daypart->daypart_id }}">{{$daypart->daypart}}</option>' +
'<?php } ?>' +
'</select>' +
'</div>' +
'<div class="col-sm-1 low-padding">' +
'<select class="leave_row_' + i + ' form-control" name="leave_type[]" id="leave_type" style="width: 100%;">' +
'<?php foreach($leave_types as $leave_type){ ?>' +
'<option value="{{ $leave_type->leave_type_type_id }}">{{ $leave_type->leave_type_type }}</option>' +
'<?php } ?>' +
'</select>' +
'</div>' +
'<div class="col-sm-4 low-padding">' +
'<input type="text" value="' + filter_null_values(json[2][i]['leave_notes']) + '" name="leave_notes[]" class="leave_row_' + i + ' form-control">' +
'</div>' +
'<div class="col-sm-1 low-padding">' +
'<input type="text" value="' + (json[2][i]['employee_first_name']).charAt(0) + json[2][i]['employee_last_name'] + '" name="last_updated[]" class="leave_row_' + i + ' form-control" readonly>' +
'</div>' +
'<div class="col-sm-2 low-padding">' +
'<input type="text" value="' + format_date(json[2][i]['leave_updated_time'], 'updated') + '" name="leave_updated_time[]" class="leave_row_' + i + 'form-control" readonly>' +
'</div>' +
'<div class="col-sm-1 low-padding">' +
'<select class="form-control" class="leave_row_' + i + ' name="status[]" id="status" style="width: 100%;">' +
'<?php foreach($status_names as $name){ ?>' +
'<option value="' + json[2][i]['status_name'] + '" name="status" class="form-control">' + json[2][i]['status_name'] + '</option>' +
'<?php } ?>' +
'</select>' +
'</div>' +
'</div>' +
'<input type="hidden" value="" name="leave-hidden" class="leave_hidden_' + i + ' form-control" readonly>'
);
i++;
});