Невозможно получить значение текстового поля, заданное другой функцией с помощью jquery - PullRequest
0 голосов
/ 01 августа 2020

Я устанавливаю значение текстового поля с помощью этой функции:

var end_limit = 'data';
jQuery(document).on('change', 'select[name=txtSetValue]', function() {
  jQuery("input[name=time]").prop('disabled', false);
  jQuery('input[name=time]').data('endtime', end_limit);
});

jQuery(document).on('change', '.get_value', function() {
  console.log(jQuery("input[name=time]").data('endtime'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<input type="text" name="time" value="" id="time" class="form-control" autocomplete="off" requried="1" data-endtime="" disabled="disabled">

<select name="txtSetValue">
<option value="0">One</option>
<option value="1">Two</option>
</select>

<input type="button" value="Get Value" class="get_value"/>

Теперь, когда я меняю поле выбора, я вижу, что данные прикреплены к атрибуту endtime в браузере, но когда я пытаюсь получить его через этот скрипт, затем endLimit не содержит никакого значения, но в другом месте работает та же функция, значение не динамически c установлено.

jQuery(document).on('change',".get_value",function(){
    var endLimit =  jQuery(this).attr('data-endtime');'
});

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Прежде всего, как говорит @dzmney

В последнем блоке кода вы ссылаетесь на элемент ввода с помощью .timepicker, но класс timepicker не установлен на входе элемент во втором блоке кода.

Отметьте это, и вы используете более новую jQuery версию.

В более новых jQuery версиях-

К получить содержимое атрибута data-id (например, <a data-id="123">link</a>), который вы должны использовать (Для более новых jQuery версий (jQuery> = 1.4.3))

$(this).data("id")

Для более низких jQuery версия jQuery (jQuery <1.4.3) используйте </p>

$(this).attr("data-id");

Рекомендуется использовать нижний регистр в ключе данных, иначе он просто обращается к другому атрибуту.

@ VisioN ответ

0 голосов
/ 01 августа 2020

В последнем блоке кода вы ссылаетесь на элемент ввода с помощью .timepicker, но класс timepicker не установлен для элемента ввода во втором блоке кода.

Вы также изменение атрибута данных с помощью метода data, но получение атрибута с помощью метода attr. Этот должен теоретически работать, но может не работать из-за того, как jQuery взаимодействует и ссылается на DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...