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

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

如何為具有 JavaScript 值的選擇框制作占位符?

如何為具有 JavaScript 值的選擇框制作占位符?

不負相思意 2023-08-24 17:20:19
并且目前正面臨這個問題。所以我在 Html 中有一個Box,它從select獲取它,但我似乎無法讓選擇框成為占位符。我已經嘗試了所有其他選項,我們在堆棧溢出中遇到麻煩有人可以幫忙嗎?我只需要一個占位符來顯示選擇框,作為文本而不是開頭的黑色選擇框valuesJSvar currentRank =     { iron    : { '1':   0, '2':  11, '3':  19 }     , bronze  : { '1':  28, '2':  42, '3':  56 }     , silver  : { '1':  69, '2':  85, '3': 102 }     , gold    : { '1': 118, '2': 140, '3': 161 }     , plat    : { '1': 182, '2': 211, '3': 240 }     , diamond : { '1': 276, '2': 311, '3': 351 }     , imortal : { '1': 406, '2': 499, '3': 591 }     }   , desiredRank =     { iron    : { '1':   0, '2':  11, '3':  19 }     , bronze  : { '1':  28, '2':  42, '3':  56 }     , silver  : { '1':  69, '2':  85, '3': 102 }     , gold    : { '1': 118, '2': 140, '3': 161 }     , plat    : { '1': 182, '2': 211, '3': 240 }     , diamond : { '1': 276, '2': 311, '3': 351 }     , imortal : { '1': 406, '2': 499, '3': 591 }     , radiant : { '1': 750, '2': 750, '3': 750 }     }  ;Array.prototype.unique = function() {  const resArr = [];  this.forEach(entry => {    if(resArr.indexOf(entry) == -1) resArr.push(entry);  })  return resArr;};document.getElementById('rank1')//still have no clueconst    inputField1 =      { rank1     : document.getElementById('rank1')      , devision1 : document.getElementById('devision1')      }  , inputFields =       { rank     : document.getElementById('rank')      , devision : document.getElementById('devision')      }  ;inputField1.rank1.innerHTML =   Object.keys(currentRank)    .reduce((options, option) =>      options += `<option value="${option}">${option}</option>`,'<option value="" selected disabled></option>');inputField1.devision1.innerHTML =  Object.values(currentRank)    .map(entry =>      Object.keys(entry))        .flat()        .unique()        .reduce((options, option) =>           options+=`<option value="${option}">${option}</option>`,'<option value="" selected disabled></option>');
查看完整描述

2 回答

?
鳳凰求蠱

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

你可以這樣做:(?)


var currentRank = 

    { iron    : { '1':   0, '2':  11, '3':  19 } 

    , bronze  : { '1':  28, '2':  42, '3':  56 } 

    , silver  : { '1':  69, '2':  85, '3': 102 } 

    , gold    : { '1': 118, '2': 140, '3': 161 } 

    , plat    : { '1': 182, '2': 211, '3': 240 } 

    , diamond : { '1': 276, '2': 311, '3': 351 } 

    , imortal : { '1': 406, '2': 499, '3': 591 } 

    };


const myForm = document.forms['my-form']

  ;

function setSelect( xSlct, arr )

  {

  xSlct.innerHTML = '' // clear all options

  let ph = new Option(xSlct.dataset.placeholder , '', true, true )

  xSlct.add( ph )

  arr.forEach(el => xSlct.add(new Option( el , el )) )

  ph.disabled = true

  }


setSelect( myForm.rank1, Object.keys(currentRank))


setSelect( myForm.devision1, Object

                          .values(currentRank)

                          .map(Object.keys)

                          .flat()

                          .filter((v,i,t)=>t.indexOf(v)===i))

<form action="xxx" name="my-form" >

  <select name="rank1" data-placeholder="<< Rank >>"></select>

  <select name="devision1" data-placeholder="<< Devision >>"></select>

</form>


查看完整回答
反對 回復 2023-08-24
?
明月笑刀無情

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

將類似的內容添加到您選擇的每個字段中


 <label for="rank1">Rank1:</label>

 <select id="rank1" class="calcInput" onchange="getval(this);">

     <option value="">--Select rank--</option>

 </select>

并追加而不是替換


inputField1.rank1.innerHTML += 

...


查看完整回答
反對 回復 2023-08-24
  • 2 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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