2014-02-18 2 views
1

Привет, я постараюсь, чтобы это было коротко ... На прошлой неделе мы начали изучать Javascript в школе. Прежде чем мы узнали о HTML, CSS и Java (я знаю, что это не имеет никакого отношения к JS, я просто хочу упомянуть, что должен знать синтаксис, из того, что сказал нам наш учитель).Ошибка в коде, отсутствие основ в JS

Итак, мы начали с выпадающих списков для формы, чтобы выбрать день, месяц и год. код тогда выглядел следующим образом:

Day: 
    <select name="day"> 
     <script type="text/javascript"> 
      var day; 

      for(i=1;i<=31;i++){ 
       day += "<option value='"+i+"'>"+i+"</option>"; 
      } 

      document.write(day); 
     </script> 
    </select> 

Это работало. Но наш учитель сказал нам, что одна из приятных вещей в Javascript - сделать все проще с помощью методов и т. Д., Чтобы избежать перезаписи вещей. Мы должны были сделать это Drop-Down в течение месяца и года, поэтому я думал, что сделаю функцию во внешнем файле Javascript.

Это функция:

function date(start, end) { 

    var dateV =""; 

     for(start==i;i<=end;i++) 
     dateV += "<option value='"+i+"'>"+i+"</option>"; 

    document.write(dateV); 
    } 

Тогда я называю его в HTML-файл:

Day: 
    <select name="day"> 
     <script type="text/javascript"> 
      date(1,31); 
     </script> 
    </select> 

Но это только показывает пустое меню выпадающим. Что я сделал ложным? Я просто хочу знать это, чтобы понять основы Javascript, потому что я действительно хотел бы изучить этот скрипт languague.

Благодарим за помощь.

PS: Извините за мой английский ошибок, не мой основной язык ...

+0

Ваш учитель действительно научил вас использовать 'document.write'? Это уже не лучшая практика. Надеюсь, они будут учить вас о [ненавязчивом JavaScript] (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript) и методах DOM. –

+0

Да, это так, наши учителя очень боятся новых вещей. мой друг все еще довольно «сердится» на наш «Учитель HTML», что мы не изучили html5 ... –

ответ

3

Проверьте вашу date() функцию:

function date(start, end) { 

    var dateV =""; 

    // vvvvvvvv 
    for(start==i;i<=end;i++) 
     dateV += "<option value='"+i+"'>"+i+"</option>"; 

    document.write(dateV); 
} 

(variable == value) условна, и возвращает истину, если переменные равны, и если это не так. Вы хотите изменить start == i к var i = start, что означает «запустить цикл, создав переменную i и установите его на значение start»

В свою очередь, вы в конечном итоге со следующим:

function date(start, end) { 

    var dateV =""; 

    for(var i = start;i<=end;i++) 
     dateV += "<option value='"+i+"'>"+i+"</option>"; 

    document.write(dateV); 
} 
+0

Я бы предположил, что это должно быть 'i = start'. На самом деле он должен * действительно * быть 'for (var i = start; i

+0

@RocketHazmat Конечно, должно быть; Я, очевидно, сплю. – h2ooooooo

+0

@ user3325043 Определить «не работает». Что происходит? Получаете ли вы ошибку в консоли javascript? – h2ooooooo

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