我有以下input內容,用戶可以首先單擊以啟用 ( button1),鍵入所需的新值,最后保存 ( button2)。
<input class="form-control inputUserValue" onkeypress="return contoso.isNumberKey(this, event,3);"
data-default_value="10,00" value="10,00" disabled="">
問題:啟用該欄位后,用戶必須首先delete用鍵盤或backspace在鍵盤上擦除輸入內容(包括已選擇內容時),然后開始在空白input欄位中輸入新值。因此,用戶不能簡單地使用滑鼠選擇并鍵入新值。input當是文本時,此行為也會發生在軟體的其他部分。
這個想法是通過在按下后只需鍵入所需的新值button1,替換現有和顯示的內容來改善用戶體驗。現有的文本/值仍應顯示,但已被選中并準備好在用戶鍵入時替換,或者用戶可能希望取消選擇并對現有文本/值進行相同的小調整。
我們onclick="this.select();"在按下時嘗試過,但如果沒有or button1,我們仍然無法輸入新值。deletebackspace
任何人都可以幫助實作這一目標嗎?
HTML 由 JS 生成和管理。是inputwhitin a table-responsive。我們的系統專為在 Chrome 上運行而設計。
uj5u.com熱心網友回復:
您使用該select()方法的方法正確,但您首先需要focus()輸入:
usrinput.focus();
usrinput.select();
作業示例:(對于輸入型別text)
const usrinput = document.querySelector('input');
document.querySelector('#button1').addEventListener('click', function() {
usrinput.disabled = false;
usrinput.focus();
usrinput.select();
});
<button id="button1">enable</button>
<input type="text" value="10,00" disabled>
<button id="button2">Save</button>
作業示例:(對于輸入型別number)
const usrinput = document.querySelector('input');
document.querySelector('#button1').addEventListener('click', function() {
usrinput.disabled = false;
usrinput.focus();
usrinput.select();
});
<button id="button1">enable</button>
<input type="number" value="10" disabled>
<button id="button2">Save</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/497539.html
標籤:javascript html 输入 点击
上一篇:在onclick中使用變數是否比使用e.target更糟糕?
下一篇:為什么這太慢了?
