2013-11-29 1 views

ответ

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

0

Что вы предлагаете невозможно так же. Вам придется динамически создавать эту функцию с помощью 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's value 
    newOpt.innerHTML = lastYear;     //Set it's 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 

Вот fiddle

Смежные вопросы