我有一個很大的下拉串列,其中包含如下可能的答案:
<select name="mySelect" id="mySelect" required="" >
<option value="-100" > -100% </option>
<option value="-99" > -99% </option>
<option value="-98" > -98% </option>
<option value="0" > 0% </option>
<option value="101" selected = "" hidden = ""> ----- </option>
從 -100 到 100。當第一次單擊下拉串列時,我希望它以預先指定的值(即 0)打開(并選擇)。
我試過這個:
$('#mySelect').one('focus', function() {
$(this).children('option[value=0]').prop('selected',true);
});
這在 Chrome 中運行良好,但在 Firefox 中不起作用,這對我來說是個問題。(編輯)如評論中所述,在 Firefox 中,上面的腳本選擇了正確的選項,但下拉串列不會滾動到該值。
在 Firefox 和 Chrome 中提供作業解決方案的幫助將不勝感激。
這是問題的一個小提琴:https : //jsfiddle.net/monni/an4guvse/28/
uj5u.com熱心網友回復:
在單擊下拉串列之前,我不想顯示任何“真實”值
鑒于此宣告,在評論中,您嘗試做的事情是行不通的。內的選項串列中可用的操作select非常有限,并且這種行為是非標準的。
我認為它甚至違反直覺,會讓您的用戶感到困惑并導致比它解決的問題更多的問題。
您試圖實作的目標似乎可以通過使用range輸入來更好地解決:
$('#foo').on('input', e => $(e.target).next().text(e.target.value '%'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<input type="range" min="-100" max="100" value="0" id="foo" />
<span></span>
uj5u.com熱心網友回復:
下次請嘗試在您的問題中創建一個片段。這是一個 最小的可重現示例。將所需選項設定為selected使用普通 js(無 jQuery):
// create the selector dynamically
document.body.insertAdjacentHTML(`beforeend`,
`<select id="mySelect">
${[...Array(201)].map((v, i) =>
`<option value="${i-100}"}>${i-100}%</option>`).join(``)}
</select>`);
// set selected value
setTimeout( () =>
document.querySelector(`#mySelect option[value="0"]`).selected = `selected`, 1000);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359913.html
標籤:javascript html 查询 重点
