我正在尝试使用javascript验证表单。在返回true之前检查输入值是否与数组中的任何值匹配。
这是我到目前为止所写的一个例子。但这似乎行不通。
<script type='text/javascript'>
function checkForm()
{
var agent = document.getElementById('agent').value;
var myArray = new Array()
myArray[0] = 'First Agent';
myArray[1] = 'Second Agent';
myArray[2] = 'Third Agent';
if (agent != myArray)
{
alert("Invalid Agent");
return false;
}
else
{
return true;
}
}
<form>
<fieldset>
Agents Name*
<input type="text" size="20" name="agent" id="agent">
</fieldset>
</form>
答案 0 :(得分:3)
你需要创建一个for结构来传递你的整个数组,当值匹配时你返回true,否则返回false。像这样:
for (var i = 0; i < myArray.length; i++) {
if (agent == myArray[i])
return true;
}
return false;
答案 1 :(得分:0)
function checkForm() {
var agent = document.getElementById('agent').value;
var myArray = ['First Agent', 'Second Agent', 'Third Agent'];
if(myArray.indexOf(agent) == -1) //returns the index of the selected element
{
alert("Invalid Agent");
return false; // if you return false then you don't have to write the else statement
}
return true;
}
答案 2 :(得分:-1)
“agent!= myArray”将您的字符串与数组进行比较,而不是将其与内容进行比较。 看看这篇文章: Determine whether an array contains a value
答案 3 :(得分:-1)
使用Underscore / lodash你可以做到:
if (_.indexOf(myArray,agent) == -1)
{
//alert invalid agent
...
}