假設我正在訪問使用 Material UI 的在線表單,例如https://codesandbox.io/s/material-demo-forked-kigre?file=/index.js
我想使用控制臺javascript用一些值填充輸入欄位,例如
for (input of document.getElementsByTagName('input')) {
input.value = "new value";
console.log(input.value);
}
當輸入欄位值確實發生變化并且控制臺可以記錄更新的值時,這首先出現。但是,正如您所看到的,實際值“您的輸入值是:測驗”的顯示沒有改變,一旦您單擊輸入欄位,它就會恢復到其原始值。
你能寫一個可以實際改變輸入欄位值的外部javascript嗎?我相信這不是那么簡單,可能需要調度事件之類的東西?
uj5u.com熱心網友回復:
您可以執行以下操作:
- 找到 Material UI 輸入欄位(例如按類名)
- 查找名為的屬性
__reactPropsxxxxx(最后一位每次都不同) - 執行
onChange函式
這是一個示例代碼:
for (input of document.getElementsByClassName("MuiInput-input")) {
for (key in input) {
if (key.startsWith("__reactProps")) {
input[key].onChange({target: {value: "changed!"}});
break;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/379750.html
標籤:javascript 形式 材质-ui 文本域 表单域
上一篇:保護表單定義yaml不被覆寫
下一篇:表單輸入占位符在回應模式下消失
