【问题标题】:get array variable value获取数组变量值
【发布时间】:2013-12-26 14:08:38
【问题描述】:

下面的代码创建一个表单并将数组列表附加到提交时设置的字段。但是,只有在表单中输入 0 到 3 的值而不是数组变量 ArrayName =['list1','list2','list3','list4'] 中的实际文本值时,它才有效 这行代码:var a = ArrayName.indexOf(form.url.value) 返回值 -1 而不是文本输入值。

非常感谢任何帮助。

<font color = "Silver" size ="4">
<form onsubmit="return processForm(this);">
<input type="text" name="url" required="required"/>
<input type ="radio"name="SearchType" value ="SymbolSearch" id="SearchByEpic" checked     ="checked"/><font size=2>Symbol search

<input type ="radio"name="SearchType" value ="CompanySearch"/>Company name search
<input type="submit" value="Submit" />
</input></input>
</form><font color = "white">
<br><br>


<style media="screen" type="text/css">
fieldset{
border:0px solid gray;
padding:1em;
float:left;
font-family:Arial;
}
legend{
display:none;
}
h2{
border-bottom:2px solid gray;
margin:1em 0;
}
p{
margin:1em 0;
}
</style>

<div id="QuoteField">
<fieldset style="float: center; background-color:#313131; width:558px; height:318px;" >    <font size="4"><strong>
<br><br><br><br>
<li><p id="CompanyName"><font color=#21F1FE><strong>Company name: </p></li>

<li><p id="CompanyEpic"><font color=#21F1FE><strong>Stock symbol: </p></li>

<li><p id="CompanySector"><font color=#21F1FE>Sector: </p></li>
<li><p id="CompanySub">Sub sector: </p></li>

<br>
</fieldset></div>

<script type="text/javascript">var your_url = 'http://getquote=LLOY.L';</script>
<script type="text/javascript" src="jquery.min.js" ></script>
<script type="text/javascript">
  $('#QuoteField').hide();

var ArrayName = ['List1','List2','List3','List4']
var ArrayDate = ['28-03-1991', '28-09-2004', '01-01-1901', '12-05-2008']
var ArraySector = ['General Financial','Nonlife Insurance','Support Services','Oil     Equipmen']
var EpicSubSector = ['Asset Managers','Insurance Brokers','General Support','Oil     Equipment & Services']
var Epic=['stock1','stock2','stock3','stock4']


function processForm(form)
{
var somevalue = form.url.value;
var StockNum=0; 
var a = ArrayName.indexOf(form.url.value);
alert( a );
$('#QuoteField').show(500);
$('#CompanyName').html('<font color=#21F1FE><strong>Company name: ');
$('#CompanySub').html('Sub sector: ');
$('#CompanySector').html('Sector: ');
$('#CompanyEpic').html('Stock symbol: ');


// 

 if($('#SearchByEpic').attr('checked'))
{
$('#CompanyName').append('</strong><font color="white" size="2"</font>' + ArrayName[form.url.value] +'<strong>');
$('#CompanySub').append('</strong><font color="white" size="2"</font>' + ArrayDate[form.url.value]);
$('#CompanySector').append('</strong><font color="white" size="2">' + ArraySector[form.url.value]+ '</font>');
$('#CompanyEpic').append('</strong><font color="white" size="2">' +   Epic[form.url.value]+ '</font>');
}
else{alert("not epic search");$("#symbol").html("")
}

//window.open("http://www.reuters.com/finance/stocks/overview?symbol=" + form.url.value,     "test window","width=100,height=100"); 

return false;
return false;
}
 </script>

【问题讨论】:

  • 搜索区分大小写,您是否完全匹配?
  • 哦,来吧未关闭的&lt;strong&gt;标签,使用过时的&lt;font&gt;,未关闭的&lt;font&gt;标签...未初始化的list元素...return false在您的JS中两次。 ..
  • 我猜今天有人没吃早餐……

标签: javascript html indexof


【解决方案1】:

当我尝试你的代码时,它工作得很好。

最小的工作示例:

HTML:

<form onsubmit="return processForm(this);">
  <input type="text" name="url" required="required" value="List1" />
  <input type="submit" value="Submit" />
</form>

Javascript:

var ArrayName = ['List1', 'List2', 'List3', 'List4'];

function processForm(form) {
  var somevalue = form.url.value;
  var a = ArrayName.indexOf(form.url.value);
  alert(a);
  return false;
}

小提琴:http://jsfiddle.net/Guffa/Ap9Gw/

您的代码有很多错误,但我看到的任何内容都无法阻止脚本的这部分工作。

【讨论】:

  • 谢谢,找到问题了。使用 indexOf 比较数组和变量时区分大小写。有没有办法解决这个问题?
  • @user3135160 在比较之前强制所有内容为大写。
  • @user3135160:使用toUpperCase方法将输入转换为大写,并在Array中使用大写:jsfiddle.net/Guffa/Ap9Gw/1
猜你喜欢
  • 1970-01-01
  • 2019-01-06
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-21
  • 2016-03-28
相关资源
最近更新 更多