[英]Save data from edit popup
我有一個彈出部分,其中包含兩個用於股票價值的輸入。 我的預期結果 - 輸入的名稱和描述應在保存后顯示在配置文件部分。
我只想使用原生 JS 並且 id 受到限制。
問題如下 - 即使我在表單輸入中輸入內容,input.values 仍與 HTML 中定義的相同。
<section class="profile">
<div class="profile__info">
<img class="profile__avatar" src='./images/Cousteau.png' alt='Profile Image'>
<div class="profile__data">
<p class="profile__name">Name</p>
<p class="profile__description">Description</p>
</div>
<button class="profile__edit-button"></button>
</div>
<button class="profile__add-button"></button>
</section>
<section class="popup popup_status_is-closed">
<div class="popup__content">
<button class="popup__close-button"></button>
<h3 class="popup__title">Edit</h3>
<form class="popup__form">
<input class="popup__input popup__input_type_name" name="name" type="text" required minlength="2" maxlength="25" value="Name">
<input class="popup__input popup__input_type_description" name="description" type="text" required minlength="2" maxlength="35" value="Description">
<button class="popup__button" id="submit" type="submit">Save</button>
</form>
</div>
</section>
JS
function formSubmitHandler(evt) {
evt.preventDefault();
const nameInput = popUp.querySelector('.popup__input_type_name');
const descrInput = popUp.querySelector('.popup__input_type_description');
const profileName = profile.querySelector('.profile__name');
const profileDescr = profile.querySelector('.profile__description');
nameInput.value = profileName.textContent;
descrInput.value = profileDescr.textContent;
closeEditForm();
};
saveButton.addEventListener('click', formSubmitHandler);
formElement.addEventListener('submit', formSubmitHandler);
我認為您的代碼存在許多問題。
1)您的分配方式錯誤 - 即nameInput.value = profileName.textContent
應該是profileName.textContent = nameInput.value
2)你的選擇器是錯誤的 - 你想 select 來自document
而不是來自未定義的popUp
, profile
等
3)您的處理程序錯誤 - 您需要將事件處理程序添加到提交按鈕
4)我可能是錯的,但我認為你的輸入應該有placeholder
而不是value
- 即Name
和Description
只是為了識別輸入的類型......
考慮到所有這些 - 我做了一些更改,這應該按預期工作
function qs(selector) { return document.querySelector(selector); } function formSubmitHandler(evt) { evt.preventDefault(); qs('.profile__name').textContent = qs('.popup__input_type_name').value; qs('.profile__description').textContent = qs('.popup__input_type_description').value; closeEditForm(); } function closeEditForm() {} document.getElementById('submit').addEventListener('click', formSubmitHandler);
<section class="profile"> <div class="profile__info"> <img class="profile__avatar" src='./images/Cousteau.png' alt='Profile Image'> <div class="profile__data"> <p class="profile__name">Name</p> <p class="profile__description">Description</p> </div> <button class="profile__edit-button"></button> </div> <button class="profile__add-button"></button> </section> <section class="popup popup_status_is-closed"> <div class="popup__content"> <button class="popup__close-button"></button> <h3 class="popup__title">Edit</h3> <form class="popup__form"> <input class="popup__input popup__input_type_name" name="name" type="text" required minlength="2" maxlength="25" placeholder="Name"> <input class="popup__input popup__input_type_description" name="description" type="text" required minlength="2" maxlength="35" placeholder="Description"> <button class="popup__button" id="submit" type="submit">Save</button> </form> </div> </section>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.