JavaScript, настройка события в календаре

#javascript

#javascript

Вопрос:

Может кто-нибудь помочь мне, пожалуйста, с этим?

Итак, у меня есть два текстовых поля: одно для дня месяца, одно для фактического текста (название события). Затем есть кнопка для запуска кода и размещения события. Это должно перезаписать все, что ранее было событием для этого дня. Я пытался написать для него функцию, но это не сработало. У меня есть dayEvent на каждый день в месяц.

 <p>Enter a day: <input type="text" id="enter_day" /></p>
<p>Enter an event: <input type="text" id="enter_day" /></p>
<input type="button" onclick="myEvent()" value="Click here" />
 
 var dayEvent = new Array();

function myEvent() {
  var newEvent = document.getElementById('enter_day').value;
  var dayForEvent = document.getElementById('enter_day').value;
  dayEvent[dayForEvent] = newEvent;
}

dayEvent[1] =
  "<br /><a href='#'>Giveaway with Cesar Millan</a><br />12 am <br />online";
dayEvent[2] =
  "<br /><a href='#'>Classic Cinema: Wings</a><br />7 pm <br />at AMC Empire 25";
 

Комментарии:

1. Оба входа имеют идентификатор enter_day . Это опечатка в этом вопросе или ошибка в вашем коде?

2. Привет, Настя, мой ответ решил твою проблему?

3. Рад, что смог помочь 🙂 Не были бы вы так любезны отметить ответ как принятый, нажав на большую серую кнопку проверки с левой стороны?

Ответ №1:

Исправление проблемы с дублирующимся идентификатором исправляет ваш код:

 var dayEvent = [
  "<br/><a href='#'>Giveaway with Cesar Millan</a><br/>12 am <br/>online",
  "<br/><a href='#'>Classic Cinema: Wings</a><br/>7 pm <br/>at AMC Empire 25"
];

function myEvent() {
  var newEvent = document.getElementById('enter_event').value;
  var dayForEvent = document.getElementById('enter_day').value;
  dayEvent[dayForEvent] = newEvent;
  
  console.info("Array after change: ", dayEvent)
}


console.info("Array before change: ", dayEvent) 
 <p>Enter a day: <input type="text" id="enter_day" /></p>
<p>Enter an event: <input type="text" id="enter_event" /></p>
<input type="button" onclick="myEvent()" value="Click here" /> 

Обратите внимание, что я изменил ваш код, чтобы использовать синтаксис объявления буквального массива с квадратными скобками.

Далее, помните, что индексы массива начинаются с 0 , а не 1 .

Наконец, я бы посоветовал вам использовать ввод с type="number" для ввода дня или выполнить некоторую проверку самостоятельно с parseInt() помощью или подобного.