Функция jQuery не вызывается при загрузке страницы

У меня есть следующий файл jQuery с функцией:

jQuery(document).ready(function(){
   // Function to disable first two options of dropdowns
   function disableNG(){
        jQuery('[name=bundle_attribute_pa_maat_163] option:eq(0)').attr("disabled",true);
        jQuery('[name=bundle_attribute_pa_maat_160] option:eq(0)').attr("disabled",true);
        jQuery('[name=bundle_attribute_pa_maat_163] option:eq(1)').attr("disabled",true);
        jQuery('[name=bundle_attribute_pa_maat_160] option:eq(1)').attr("disabled",true);
    };
    disableNG();
});

Но по какой-то причине эта функция не отключает две первые опции раскрывающегося списка при загрузке страницы.

Я вызываю функцию disableNG(); для нескольких функций .change(), с которыми они работают нормально.

Не понимаю, почему они не отключаются при начальной загрузке страницы.

используйте .prop, а не .attr, если вы используете новую библиотеку версий jquery. надеюсь, что это должно сработать

BILAL MALIK 29.05.2018 13:27

Я поменял его на опору. Но странно то, что если я вызываю эту функцию в .change (), она работает, но не при начальной загрузке страницы. И я вызвал это внутри функции готовности документа.

Arne De Belser 29.05.2018 13:28

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

BILAL MALIK 29.05.2018 13:35

Я использую поля выбора, но это работает, каждый раз, когда я делаю выбор, запускается функция .change (). & nbsp; Просто когда страница загружается изначально, я ожидаю, что функция disableNG () отключит параметры, но это не так.

Arne De Belser 29.05.2018 13:53
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
4
43
1

Ответы 1

Во-первых, используйте новый синтаксис ready state. Во-вторых, используйте .prop вместо .attr, потому что это property, а не attribute, который вы хотите установить.

jQuery(function($){
   // Function to disable first two options of dropdowns
   function disableNG(){
        $('[name=bundle_attribute_pa_maat_163] option:eq(0)').prop("disabled",true);
        $('[name=bundle_attribute_pa_maat_160] option:eq(0)').prop("disabled",true);
        $('[name=bundle_attribute_pa_maat_163] option:eq(1)').prop("disabled",true);
        $('[name=bundle_attribute_pa_maat_160] option:eq(1)').prop("disabled",true);
    };
    disableNG();
});

Привет, прежде всего. Спасибо за быстрый ответ. Это потому, что я использую этот фрагмент кода для отключения первых двух параметров каждый раз, когда кто-то меняет значение параметра в раскрывающемся списке. Вот ссылка на pastebin: pastebin.com/ewWavfP5

Arne De Belser 29.05.2018 13:20

Вы могли бы делать свою работу намного лучше. Но я не уверен, для чего нужны ваши события изменений. Но, похоже, у них тоже есть проблема, возможно, проблема не в функции, а в ваших событиях. Но это всего лишь идея ... pastebin.com/kizXJiwz @ArneDeBelser

eisbehr 29.05.2018 13:38

На самом деле это первый настоящий JS (jQuery) файл, который я пишу для некоторых действий. Так что я почти уверен, что моя работа могла бы быть намного лучше. Так что я счастлив, что вы захотели немного мне помочь. Функции change () вызываются из раскрывающихся списков. Итак, я пытаюсь добиться того, чтобы каждый раз, когда выбирается новое значение, он следит за тем, чтобы свойство двух первых опций оставалось отключенным.

Arne De Belser 29.05.2018 13:48

Кроме того, я вижу, что вы используете знаки $ вместо jQuery, когда я пытаюсь это сделать, я получаю следующую ошибку: i.gyazo.com/222cbe791e874a8ce84aa0306690b3c1.png Вот почему я использую jQuery.

Arne De Belser 29.05.2018 13:51

D Вы заметили первую строчку в моем коде? jQuery(function($) { @ArneDeBelser

eisbehr 29.05.2018 15:41

Другие вопросы по теме