Javascript код не работает в html элементе выпадающего меню

0

Я хочу связать предыдущий год в раскрывающемся списке html на странице html. Ниже мой код

<option value="(new Date()).getFullYear() - 1;">(new Date()).getFullYear() - 1;</option>

Это возможно..?

Теги:
html-select

3 ответа

0
Лучший ответ

Да, это возможно. Однако вы не можете просто произвольно разместить код JavaScript в середине вашего HTML и ожидать, что он будет интерпретироваться как JavaScript. Это относится только к специальным атрибутам (например, onclick), в противном случае вам нужно использовать <script> чтобы указать, что это JavaScript.

Тем не менее, я бы создал только элемент HTML <select> используя HTML, а затем добавлю элементы <option> с помощью JavaScript, например:

<select name="test" id="mySelect"></select>

<script type="text/javascript">
    var select = document.getElementById('mySelect');

    var option = document.createElement('option');
    option.value = (new Date()).getFullYear() - 1;
    option.innerHTML = (new Date()).getFullYear() - 1;

    select.appendChild(option);
</script>

jsFiddle demo

1

Я не думаю, что вы можете привязать JavaScript к элементу так, как вы описали, не используя фреймворк, такой как AngularJs.

Чтобы сделать это с помощью ванильного JavaScript, вам нужно будет включить JavaScript на странице, чтобы заполнить значения параметров, я бы включил его внизу страницы, что-то вроде этого:

(function () {
    var previousYear = new Date().getFullYear() - 1;
    document.getElementById('yearSelect').options[0].value = previousYear;
    document.getElementById('yearSelect').options[0].text = previousYear;
})();

Предполагая, что ваш html

<select id='yearSelect'>
    <option></option>
</select>

JSFiddle

1

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

Для окна выбора, подобного этому

<select id="mySelect">
   <option value="">Please Select</option>
</select>

JavaScript будет

function loadOption() {

   var lastYear = new Date().getFullYear() -1; //Grab the year -1

   var newOpt = document.createElement("option"); //Create a new option element
   newOpt.value = lastYear;                       //Set it value
   newOpt.innerHTML = lastYear;                   //Set it text
   document.getElementById("mySelect").appendChild(newOpt); //Apend to your select box
}

//Then you can run loadOption() onload of the document or in a script tag underneath the element itself 

Вот скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню