亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在復選框和單選按鈕中設置默認值?

如何在復選框和單選按鈕中設置默認值?

阿晨1998 2023-07-14 10:11:25
我正在制作一個簡單的反應應用程序,其中我有一些默認值要設置為輸入字段。這里有三個輸入字段,-> Textbox   = UserName-> Checkbox  = Relocation-> Radio     = ContactMode他們各自的價值觀是, {    UserName: "Test User",    Relocation: true,    ContactMode: "Email", }工作片段:const { useState } = React;const App = () => {  const [formValue, setFormValue] = useState({    UserName: "Test User",    Relocation: true,    ContactMode: "Email",  });  const handleInputChange = (e) => {    const { name, value } = event.target;    setFormValue({      ...formValue,      [name]: value,    });  };    const submitData = () => {    console.log(formValue)  }  return (    <div>      <form>        <label> User Name </label>        <input          type="text"          name="UserName"          value={formValue.UserName}          onChange={handleInputChange}        />        <br />        <br />        <label> Willing to relocate? </label>        <input          type="checkbox"          name="Relocation"          value={formValue.Relocation}          onChange={handleInputChange}        />        <br />        <br />        <label> Contact Mode </label>        <input          type="radio"          name="ContactMode"          value={`Email`}          onChange={handleInputChange}        />{" "}        Email        <input          type="radio"          name="ContactMode"          value={`Text`}          onChange={handleInputChange}        />{" "}        Text        <input          type="radio"          name="ContactMode"          value={`Both`}          onChange={handleInputChange}        />{" "}        Both        <br />        <br />        <button type="button" onClick={submitData}> Submit </button>      </form>    </div>  );};問題:-> 在上面的示例中,僅設置了文本字段值,但默認情況下未設置復選框和單選按鈕值。期望:-> 所有三個輸入字段都需要設置為其默認值。-> 在更改任何輸入字段并單擊提交按鈕時,需要通過 .. 記錄最新更改formValue。
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

您需要使用已檢查


const { useState } = React;


const App = () => {

  const [formValue, setFormValue] = useState({

    UserName: "Test User",

    Relocation: true,

    ContactMode: "Email",

  });


  const handleInputChange = (e) => {

    const { name, value } = event.target;

    setFormValue({

      ...formValue,

      [name]: value,

    });

  };

  

  const handleCheckedChange = (e) => {

    const { name, checked } = event.target;

    setFormValue({

      ...formValue,

      [name]: checked,

    });

  }

  

  const submitData = () => {

    console.log(formValue)

  }


  return (

    <div>

      <form>

        <label> User Name </label>

        <input

          type="text"

          name="UserName"

          value={formValue.UserName}

          onChange={handleInputChange}

        />

        <br />

        <br />

        <label> Willing to relocate? </label>

        <input

          type="checkbox"

          name="Relocation"

          checked={formValue.Relocation}

          onChange={handleCheckedChange}

        />

        <br />

        <br />

        <label> Contact Mode </label>

        <input

          type="radio"

          name="ContactMode"

          checked={formValue.ContactMode === "Email"}

          value={`Email`}

          onChange={handleInputChange}

        />{" "}

        Email

        <input

          type="radio"

          name="ContactMode"

          checked={formValue.ContactMode  === "Text"}

          value={`Text`}

          onChange={handleInputChange}

        />{" "}

        Text

        <input

          type="radio"

          name="ContactMode"

          checked={formValue.ContactMode  === "Both"}

          value={`Both`}

          onChange={handleInputChange}

        />{" "}

        Both

        <br />

        <br />

        <button type="button" onClick={submitData}> Submit </button>

      </form>

    </div>

  );

};


ReactDOM.render(<App />, document.getElementById("root"));

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.11.0/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.11.0/umd/react-dom.production.min.js"></script>

<div id="root"></div>


查看完整回答
反對 回復 2023-07-14
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

value復選框的等效屬性是checked:


<input

          type="checkbox"

          name="Relocation"

          checked={formValue.Relocation}

          onChange={handleInputChange}

        />


查看完整回答
反對 回復 2023-07-14
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

   const { useState } = React;


const App = () => {

  const [formValue, setFormValue] = useState({

    UserName: "Test User",

    Relocation: true,

    ContactMode: "Email",

  });


  const handleInputChange = (e) => {

    const { name, value } = event.target;

    setFormValue({

      ...formValue,

      [name]: value,

    });

  };

  

  const submitData = () => {

    console.log(formValue)

  }


  return (

    <div>

      <form>

        <label> User Name </label>

        <input

          type="text"

          name="UserName"

          value={formValue.UserName}

          onChange={handleInputChange}

        />

        <br />

        <br />

        <label> Willing to relocate? </label>

        <input

          type="checkbox"

          name="Relocation"

          value={formValue.Relocation}

          onChange={handleInputChange}

        />

        <br />

        <br />

        <label> Contact Mode </label>

        <input

      type="radio"

      name="ContactMode"

      value={`Email`}

      onChange={handleInputChange}

      checked={formValue.ContactMode==="Email"}

    />{" "}

    Email

    <input

      type="radio"

      name="ContactMode"

      value={`Text`}

      onChange={handleInputChange}

      checked={formValue.ContactMode==="Text"}

    />{" "}

    Text

    <input

      type="radio"

      name="ContactMode"

      value={`Both`}

      onChange={handleInputChange}

      checked={formValue.ContactMode==="Both"}

      

    />{" "}

    Both

    <br />

    <br />

        <button type="button" onClick={submitData}> Submit </button>

      </form>

    </div>

  );

};


ReactDOM.render(<App />, document.getElementById("root"));


查看完整回答
反對 回復 2023-07-14
  • 3 回答
  • 0 關注
  • 248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號