Я хочу связать предыдущий год в раскрывающемся списке html на странице html. Ниже мой код
<option value="(new Date()).getFullYear() - 1;">(new Date()).getFullYear() - 1;</option>
Это возможно..?
Да, это возможно. Однако вы не можете просто произвольно разместить код 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>
Я не думаю, что вы можете привязать 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>
То, что вы предлагаете, невозможно таким образом. Вам придется динамически создавать эту функцию с помощью 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
Вот скрипка