第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Javascript & HTML 單位轉(zhuǎn)換器 - 如何使用一個(gè)輸入字段作為常量

Javascript & HTML 單位轉(zhuǎn)換器 - 如何使用一個(gè)輸入字段作為常量

烙印99 2022-07-08 18:31:24
我正在嘗試將 Python 腳本轉(zhuǎn)換為基于 HTML/Javascript Web 的轉(zhuǎn)換器。該腳本非常簡(jiǎn)單,我按照https://www.w3schools.com/howto/howto_js_length_converter.asp上的步驟進(jìn)行操作,如果所有字段都是動(dòng)態(tài)的,那么效果很好。就我而言,我需要一個(gè)變量不改變。例如:用戶提供“AssayWeight”值和以下之一:PPM 或 Grav。之后,腳本會(huì)根據(jù) PPM/Grav 計(jì)算用戶未提供的其他值。這是我到目前為止的代碼:<script>function ppmtoGravConverter(source,valNum) {  valNum = parseFloat(valNum);  var inputPPMtoGrav = document.getElementById("inputPPMtoGrav");  var inputAssayWeight = document.getElementById("inputAssayWeight");  var inputGravtoPPM = document.getElementById("inputGravtoPPM");  if (source=="inputPPMtoGrav") {    inputGravtoPPM.value=(valNum*inputAssayWeight/1000).toFixed(4);  }  if (source=="inputGravtoPPM") {    inputPPMtoGrav.value=(valNum*1000/inputAssayWeight).toFixed(4);  }}</script>和來(lái)自 w3schools 的 html:<label>Assay Weight</label><input id="inputAssayWeight" type="number" placeholder="Assay Weight" oninput="ppmtoGravConverter(this.id,this.value)" onchange="ppmtoGravConverter(this.id,this.value)"><br><br><label>PPM</label><input id="inputPPMtoGrav" type="number" placeholder="PPM" oninput="ppmtoGravConverter(this.id,this.value)" onchange="ppmtoGravConverter(this.id,this.value)"><label>Grav (mg)</label><input id="inputGravtoPPM" type="number" placeholder="Grav (mg)" oninput="ppmtoGravConverter(this.id,this.value)" onchange="ppmtoGravConverter(this.id,this.value)">請(qǐng)讓我知道我錯(cuò)過(guò)了什么。這是我看 Javascript 的第二天。謝謝!
查看完整描述

2 回答

?
侃侃無(wú)極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

問(wèn)題是在您的公式中,您正在使用inputAssayWeight而不是實(shí)際獲取它的值并使用它。將這兩個(gè)if條件替換為


  if (source=="inputPPMtoGrav") {

    inputGravtoPPM.value=(valNum*parseFloat(inputAssayWeight.value)/1000).toFixed(4);

  }

  if (source=="inputGravtoPPM") {

    inputPPMtoGrav.value=(valNum*1000/parseFloat(inputAssayWeight.value)).toFixed(4);

  }

那應(yīng)該可以解決您的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2022-07-08
?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

將所有內(nèi)容包裝在<form>標(biāo)簽中并給它一個(gè)#id。


<form id='main'><!-- EVERYTHING --></form>

將事件綁定"input"到<form>并調(diào)用事件處理程序(即處理觸發(fā)事件的函數(shù))。參考:JavaScript 事件處理


document.forms.main.oninput = inputHandler;

定義function inputHandler()——記得傳遞事件對(duì)象


function inputHandler(event) {...

定義所有變量——參考:在 JavaScript 中獲取表單和表單元素的引用


// Collect all form controls into a NodeList

const field = this.elements;


// Find the element user interacted with

const input = event.target;


// Reference any form control by #id or [name] attribute by prefixing it with `field`

const aW = field.assayWeight;


// Assign a variable to form control values and convert them into a real Number

let AWT = parseFloat(aW.value);

"input"使用if/else流控制語(yǔ)句委托事件。通過(guò)明確地允許特定元素對(duì)事件做出反應(yīng)并通過(guò)簡(jiǎn)單的省略來(lái)隱式地阻止其他元素是稱為事件委托的編程范例的重要部分。


 if (input.matches('#assayWeight')) {...

HTML/CSS 布局和樣式具有一個(gè)切換系統(tǒng),它允許用戶輸入“測(cè)定重量”和“PPM”或“Grav”。將鼠標(biāo)懸停在標(biāo)題上,然后單擊一個(gè),然后單擊另一個(gè)以查看切換。請(qǐng)參閱:通過(guò)選中的單選按鈕公開(kāi)表單字段


 [name=conv],

 .mask {

   display: none

 }


 [name=conv]:checked + fieldset .mask {

   display: inline-block;

 }

演示

document.forms.convPpmG.oninput = convert;


function convert(event) {

  const field = this.elements;

  const input = event.target;

  const awt = field.aWt;

  const ppm = field.pPM;

  const grv = field.grv;

  const gtp = field.gToP;

  const ptg = field.pToG;

  let AWT = parseFloat(awt.value);

  let PPMin = parseFloat(ppm.value);

  let GRVin = parseFloat(grv.value);


  if (input.matches('#aWt')) {

    // log(AWT, "Assay Weight");

  }


  if (input.matches('#pPM')) {

    // log(PPMin, "PPM Input");

    let GRVout = PPMin * AWT / 1000;

    // log(GRVout, "Grav Output");

    ptg.value = GRVout.toFixed(4);

  }


  if (input.matches('#grv')) {

    // log(GRVin, "Grav Input");

    let PPMout = GRVin * 1000 / AWT;

    // log(PPMout, "PPM Output");

    gtp.value = PPMout.toFixed(4);

  }

}


// A utility logger - not required

const log = (data, key = 'Field') => console.log(JSON.stringify(key + ': ' + data));

root,

body {

  font: 400 3vw/1.5 Consolas, monospace;

}


fieldset fieldset {

  min-height: 20vh;

}


input,

output {

  width: 10ch;

  margin-right: 5px;

  margin-bottom: 8px;

  font: inherit;

  text-align: right;

}


#aWt {

  display: inline-block;

}


[type=reset] {

  text-align: center;

}


.switch {

  padding: 3px 5px;

}


[type=reset]:hover,

.switch:hover {

  color: tomato;

  background: rgba(56, 87, 199, 0.4);

  cursor: pointer;

}


[name=conv],

.mask {

  display: none

}


[name=conv]:checked+fieldset .mask {

  display: inline-block;

}

<form id='convPpmG'>

  <fieldset>

    <legend>PPM / Grav Convertor</legend>

    <label>Assay Weight</label>

    <input id="aWt" type="number" min='0' value="0">

    <input type='reset'>

    <br>


    <input id='ppmToGrav' name='conv' type='radio'>

    <fieldset>

      <legend>

        <label for='ppmToGrav' class='switch'>PPM to Grav</label>

      </legend>

      <label class='mask'>

      PPM: <input id="pPM" type="number" min='0' value="0">

      to Grav: <output id='pToG'>0</output> mg

      </label>

    </fieldset>


    <hr>


    <input id='gravToPPM' name='conv' type='radio'>

    <fieldset>

      <legend>

        <label for='gravToPPM' class='switch'>Grav to PPM</label>

      </legend>

      <label class='mask'>

      Grav: <input id="grv" type="number" min='0' value="0">

      mg to PPM: <output id='gToP'>0</output>

      </label>

    </fieldset>


  </fieldset>

</form>


查看完整回答
反對(duì) 回復(fù) 2022-07-08
  • 2 回答
  • 0 關(guān)注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)