簡體   English   中英

通過 GetElementByName 獲取文本區域的值

[英]get the value of text area by GetElementByName

我正在嘗試將文本區域的值添加到我的組件的 state 中。 但它似乎沒有用。 在 console.log 中。 它正確地給了我 id 但值未定義。 addListItem 由按鈕觸發。

import React from "react";
import ReactDOM from "react-dom";

import "../../styles/styles.css";

class BlockInput extends React.Component {
  state = {
    items: [{ id: 0, value: "" }],
  };

  addListItem = () => {
    console.log(this.state);
    var x = parseInt(document.getElementById("seed").innerHTML);

    const newItem = {
      id: x,
      value: document.getElementsByName("hi").text,
    };

    document.getElementById("seed").innerHTML = x + 1;
    this.setState({
      items: [...this.state.items, newItem],
    });
  };

  createList = () => {
    const { items } = this.state;
    return items.map((item) => {
      return (
        <div>
          <textarea className="item" id={item.id} type="text" name="hi" ></textarea>
          <button type="button" onClick={(e) => this.handleDelete(item)}>
            delete
          </button>
        </div>
      );
    });
  };

function getElementsByName返回“文檔中具有指定名稱的所有元素的集合”而不是單個元素,其次,如果您只有一個具有該名稱的文本區域(在您的頁面中),您應該使用值來讀取文本區域內的內容,此代碼將工作。

document.getElementsByName("hi")[0].value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM