Как отключить поле выбора не внутри формы?

Кажется, я не могу отключить поле выбора, если тег выбора не вложен в тег формы. Вот некоторые вещи, которые я пробовал (используя Firefox 3): (через JQuery)

$("#mySelect").attr("disabled", true);
$("#mySelect").attr("disabled", "disabled");

(также)

document.getElementById('mySelect').disabled = true;
document.getElementById('mySelect').disabled = true;

Вот HTML:

<select id = "mySelect" onchange = "updateChoice();">
<option value = "1">First</option>
<option value = "2" selected = "">Second</option>
</select>

Должен ли я иметь это поле выбора внутри элемента формы?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
26 272
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Краткий ответ: нет, вам не нужно иметь поле выбора в форме.

Где ваш JavaScript в настоящее время включен по отношению к тегу body в вашем HTML? Помните, что если у вас есть встроенный JavaScript, включенный в заголовок вашей страницы, он будет запускаться при загрузке страницы. На этом этапе поле выбора не было проанализировано, и, следовательно, ваш код не может получить к нему доступ, чтобы отключить его.

Я не поклонник смешивания JavaScript и разметки вместе, но эта демонстрация должна работать во всех смыслах и целях.

<html>
 <head>
  <title>JavaScript Select Demo</title>
 </head>
 <body>
    <select id = "mySelect" onchange = "updateChoice();">
        <option value = "1">First</option>
        <option value = "2" selected = "">Second</option>
    </select>
 </body>
 <script type = "text/javascript">
     document.getElementById('mySelect').disabled = true;
 </script>
</html>

Если по какой-либо причине вам необходимо сохранить сценарий, расположенный на странице, а не во внешнем файле, вы можете настроить обработчик событий для выполнения тех же функций после загрузки страницы. Вместо того, чтобы хранить код внизу разметки, вы можете включить его в свой головной узел:

 <head>
  <title>JavaScript Select Demo</title>
  <script type = "text/javascript">
    window.onload = function() {
        document.getElementById('mySelect').disabled = true; ;
    }
 </script>
 </head>

Наконец, вместо того, чтобы включать обработчик onchange в атрибуты вашей разметки, вы можете в качестве альтернативы настроить обработчик событий в своем JavaScript для выполнения того же поведения. jQuery упрощает это.

При использовании библиотеки jQuery убедитесь, что код, который вы пишете, всегда заключен в функцию $.ready:

$(function () {
    //Type in your code here
});

Это гарантирует, что код, который вы пишете, будет выполнен после завершения загрузки страницы

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