在 react 應用程式中,有一個帶有一些按鈕和輸入的表單,如下所示:
<form>
<div>
{
['1', '10', '100'].map(val => (
<button onClick={() => console.log(val)}>
{val}
</button>
}
</div>
<div>
<input type='string' />
</div>
</form>
當專注于輸入欄位時,按“Enter”會觸發第一個按鈕 ( console.log('1'))。
它似乎與某些默認表單行為有關,因為將<form>element更改為 可以<div>解決問題。
并且添加event.preventDefault()到輸入的onKeyDown處理程式也解決了這個問題,這表明涉及到一些事件冒泡。
據我了解,當關注表單中的輸入欄位時按“Enter”會導致表單提交,并且事件冒泡應該只觸發父處理程式,所以這讓我很困惑,第一個按鈕,它在同級元素中會被觸發
uj5u.com熱心網友回復:
是的,沒錯,type按鈕元素中有屬性 - https://www.w3schools.com/jsref/prop_pushbutton_type.asp
另外,您會注意到默認type屬性是submit,因此這意味著按鈕可以在按鍵時觸發enter。
我認為您可以通過將type屬性設定為button如下所示來解決問題。
<button type="button" />
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/479585.html
上一篇:使用PySpark、Python或Shell決議多行CSV
下一篇:cf7提交WP后更新用戶元資料
