Разместите оповещение после блока if else, ваше оповещение будет перед блоком if else, поэтому всегда выдает ложное значение
$(".add_initep_row").click(function(){
var markup = "<td style='width: 122px;'><div class='input-group'><input type='text' class='form-control textmodify_newSchedule datepicker_recurring_start' id='ep_date' ><span class='input-group-addon datepicker_recurring_start_calender'><span class='glyphicon glyphicon-calendar'></span></span></div></td><td><textarea></textarea></td><td><input type='hidden' class='ep_cmpl_val' value='False'><input type='checkbox' class='cmpl_checkbox' onclick='myfunction()'></td>";
$('#init_ep_table tbody') // select table tbody
.prepend('<tr />') // prepend table row
.children('tr:first') // select row we just created
.append(markup) // append four table cells to the row we created
/*$("table tbody").append(markup);*/
});
function myfunction()
{
var input = $('.cmpl_checkbox').prev('.ep_cmpl_val').val();
if (input == 'False')
{
$('.cmpl_checkbox').prev('.ep_cmpl_val').val('True');
}
else
{
$('.cmpl_checkbox').prev('.ep_cmpl_val').val('False');
}
alert(input);
}
$(document).ready(function(){
$('.cmpl_checkbox').click(function() {
var input = this.previousSibling.value;
//alert(input);
if (input == 'False')
{
this.previousSibling.value='True';
}
else
{
this.previousSibling.value='False';
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="init_ep_table">
<tr>
<td>
<div class="input-group">
<input type="text" class="form-control textmodify_newSchedule datepicker_recurring_start" >
<span class="input-group-addon ep_date4_calender datepicker_recurring_start_calender"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
</td>
<td>
<textarea></textarea>
</td>
<td>
<input type="hidden" value="False"><input type="checkbox" class="cmpl_checkbox">
</td>
</tr>
</table>
<input type="button" class="add_initep_row" value="Add Row">
Вы не можете контролировать пользовательское действие непосредственно от сервиса. Услуга будет работать в другой станции окна от пользовательских операций и так не будет иметь никакого способа сцепиться в то действие (кроме через драйверы фильтра, которые должны были бы быть записаны в C).
Таким образом, Вам будет нужно клиентское приложение, которое работает в рабочем столе пользователя и рычагах в клавиатуру и действие мыши. Вы сделали бы это через два вызова к Windows API SetWindowsHookEx (для низкоуровневых рычагов клавиатуры и мыши) использование JNI. Для контроля действия, приложение должно было бы затем обработать рычаги клавиатуры и мыши для сообщений.
Вы могли запустить приложение как автоматический запуск путем добавления записи в ключ Выполнения реестра, или Вы могли иметь свой монитор служб для журнала сеанса на событиях и запустить приложение от него. Затем приложение сеанса пользователя могло или обработать саму информацию или передать ее службе через канал или сокет.
Что точно Вы подразумеваете 'под пользовательским действием'? Необходимо определить тот термин точно сначала, чтобы даже начать думать о решении, тем более, что Вы говорите, что "нажатая клавиша, используемое приложение, и т.д." не является операциями.
Это непосредственно не поддерживается платформой Java
Было бы намного легче при исследовании альтернативы.NET.
Вы можете попробовать это SWT Win32 Extension . Он позволяет устанавливать хуки для клавиатуры и мыши из java в Windows.