Возникла проблема при запуске функции javascript из диапазона с кнопкой роли - PullRequest
1 голос
/ 17 апреля 2020

Я создаю таблицу с типом ввода текста и span с кнопкой роли внутри. Я хочу, чтобы вызвать функцию javascript, когда пользователь нажал на диапазон с кнопкой роли. Вот мой диапазон

         <th>
            <span data-field=@COLUMN_NAME class="k-filtercell" data-role="filtercell">
                  <span>
                       <input id="COLUMN_NAME" data-bind="value: value" style="width:120px" aria-label="Name" title="Name" data-text-field=@COLUMN_NAME role="textbox"  aria-readonly="false" aria-autocomplete="list" >
                     <span unselectable="on" class="k-icon k-clear-value k-i-close k-hidden" title="clear" role="button" onclick="filterInputBtn();" tabindex="-1"></span>
                   </span>
            </span>
       </th>

Я запускаю javascript функцию

            $(document).ready(function () {

            filterInputBtn = function () {
             var inputHTML = $(this).closest('input').val();
           }
        });

Но событие щелчка не срабатывает. Пожалуйста, дайте мне знать, как вызвать событие клика из диапазона с кнопкой роли

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Поскольку вы используете jQuery, правильный способ будет использовать .on() слушатель на span:

$(document).ready(function() {
  $("span[role=button]").on("click", function() {
    var inputHTML = $(this).prev('input').val();
    console.log(inputHTML)
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <th>
    <span data-field=@COLUMN_NAME class="k-filtercell" data-role="filtercell">
                  <span>
                       <input id="COLUMN_NAME" data-bind="value: value" style="width:120px" aria-label="Name" title="Name" data-text-field=@COLUMN_NAME role="textbox"  aria-readonly="false" aria-autocomplete="list" type="text">
                     <span unselectable="on" class="k-icon k-clear-value k-i-close k-hidden" title="clear" role="button" tabindex="-1">Span Content</span>
    </span>
    </span>
  </th>
</table>
0 голосов
/ 17 апреля 2020

Вы не прикрепляете событие нажатия нигде в своем коде

    $(document).ready(function () {

        function filterInputBtn () {
         var inputHTML = $(this).closest('input').val();
       }
    });

В javascript сначала необходимо использовать ключевое слово "функция", а затем написать имя функции

Надеюсь, это поможет

...