如何获取用户's输入并返回我定义的匹配变量的值

How do I take a user's input and return the value of a matching variable I have defined?

本文关键字:定义 返回 变量 输入 获取 何获取 用户      更新时间:2023-09-26
  1. 用户输入三个字母的代码
  2. 函数查找具有相同三个字母代码的变量
  3. 如果分配给该变量的数字>1020,则提醒"是"

var form = document.getElementById("airportForm")
var	input = document.getElementById("airport")
	//user input from form
var airport = {
 lax : 12091,
 jfk : 14511,
 ewr : 11000,
 lga : 7003,
 phl : 10506,
 dca : 7169,
 iad : 11500,
 bos : 10083,
 btv : 8320,
 mht : 9250,
 pwm : 7200,
 npt : 2999,
 hpn : 6549,
 bdl : 9510,
 bwi : 10502,
 pit : 11500,
 ord: 13001,
 mdw : 6522,
 ind : 11200,
 lax : 12091,
 sfo : 11870,
 san : 9401,
 las : 14510,
 sea : 11901,
 dfw : 13401,
 aus : 12248,
 atl : 11890,
 pbi : 10008,
 mco : 12005,
 lhr : 12799,
 lgw : 10364,
 man : 10000,
 lcy : 4948,
 dub : 8652,
 snn : 10495,
 cdg : 13829,
 ory : 11975,
 mad : 14272,
 bcn : 11654,
 opo : 11417,
 lis : 12484,
 dxb : 13123,
 auh : 13451,
 dwc : 14764,
 jed : 12467,
 ruh : 13796,
 kwi : 11483,
 ebl : 13891,
 sda : 13123,
 tlv : 11998,
 amm : 12008,
 cai : 13120,
 jnb : 14495,
 cpt : 10502,
 dkr : 11450,
 cmn : 12205,
 rak : 10171,
 mem : 11120,
 dme : 12448,
 svo : 12139,
 aua : 8999,
 hav : 13123,
 hkg : 12467,
 pvg : 13123,
 pek : 14764,
 bkk : 13123,
 cgk : 12008,
 sin1 : 13123, //CANNOT USE SIN...
 can : 12467,
 syd : 12999,
 mel : 11998,
 bne : 11680,
 per : 11299,
 akl : 11926,
 nrt : 13123,
 hnd : 9839,
 tas : 13123,
 rix : 8366,
 ham : 12028,
 osl : 11811,
 cph : 11811,
 hel : 11286,
 arn : 10830,
 kef : 10056
 
}
//Uses user input to get relevant value from airport object
var airportNumber = (airport[input]);
function capable() {
	input.toLowerCase;
	alert(airportNumber)
	if (airportNumber >= 10200) {
		alert("YES")
	}
	else {
		alert("NO")
	}
}
<form id="airportForm" action="form_action.asp">
  Airport: 
    <input id="airport" type="text" name="airport">
</form> 
<button onclick="capable()">Submit</button>

看起来一切都在工作,但在函数capable()中,当它提醒airportNumber时,它会提醒"未定义"

在用户的输入和我的变量列表之间显然有一个缺失的连接。有人知道我做错了什么吗?

这是因为你只在页面加载时读取airportNumberinput,但你需要在每次输入时加载它,所以我把它放在了功能强大的函数之上:

var form = document.getElementById("airportForm")
//user input from form
var airports = {
  lax: 12091,
  jfk: 14511,
  ewr: 11000,
  lga: 7003,
  phl: 10506,
  dca: 7169,
  iad: 11500,
  bos: 10083,
  btv: 8320,
  mht: 9250,
  pwm: 7200,
  npt: 2999,
  hpn: 6549,
  bdl: 9510,
  bwi: 10502,
  pit: 11500,
  ord: 13001,
  mdw: 6522,
  ind: 11200,
  lax: 12091,
  sfo: 11870,
  san: 9401,
  las: 14510,
  sea: 11901,
  dfw: 13401,
  aus: 12248,
  atl: 11890,
  pbi: 10008,
  mco: 12005,
  lhr: 12799,
  lgw: 10364,
  man: 10000,
  lcy: 4948,
  dub: 8652,
  snn: 10495,
  cdg: 13829,
  ory: 11975,
  mad: 14272,
  bcn: 11654,
  opo: 11417,
  lis: 12484,
  dxb: 13123,
  auh: 13451,
  dwc: 14764,
  jed: 12467,
  ruh: 13796,
  kwi: 11483,
  ebl: 13891,
  sda: 13123,
  tlv: 11998,
  amm: 12008,
  cai: 13120,
  jnb: 14495,
  cpt: 10502,
  dkr: 11450,
  cmn: 12205,
  rak: 10171,
  mem: 11120,
  dme: 12448,
  svo: 12139,
  aua: 8999,
  hav: 13123,
  hkg: 12467,
  pvg: 13123,
  pek: 14764,
  bkk: 13123,
  cgk: 12008,
  sin1: 13123, //CANNOT USE SIN...
  can: 12467,
  syd: 12999,
  mel: 11998,
  bne: 11680,
  per: 11299,
  akl: 11926,
  nrt: 13123,
  hnd: 9839,
  tas: 13123,
  rix: 8366,
  ham: 12028,
  osl: 11811,
  cph: 11811,
  hel: 11286,
  arn: 10830,
  kef: 10056
}
//Uses user input to get relevant value from airport object
function capable() {
  var input = document.getElementById("airport").value;
  var airportNumber = (airports[input]);
  alert(airportNumber)
  if (airportNumber >= 10200) {
    alert("YES")
  } else {
    alert("NO")
  }
}
<form id="airportForm" action="form_action.asp">
  Airport:
  <input id="airport" type="text" name="airport">
</form>
<button onclick="capable()">Submit</button>

有几个问题

1) 点击按钮,您没有得到更新的机场代码

2) input变量是html控件和机场代码本身。你必须使用ìnput.value

function capable() {
  var input = document.getElementById("input");
  var airportNumber = airports[input.value]; // get user airport code
    input.toLowerCase;
    alert(airportNumber)
    if (airportNumber >= 10200) {
        alert("YES")
    }
    else {
        alert("NO")
    }
}

BTW:没有必要像在第二行那样对input进行全局加载,我将该逻辑移到了capable方法