Javascript索引

Javascript索引,javascript,Javascript,我对javascript不是很熟悉,所以我在使用下面的脚本时遇到了问题。我需要检查输入的名称是否也包含在消息中 <input type="hidden" id="Message" value="<%= rsDetail.Fields("Message") %>"> <input type="hidden" id="FirstName" value="<%= rsDetail.Fields("FirstName")%>"> <script t

我对javascript不是很熟悉,所以我在使用下面的脚本时遇到了问题。我需要检查输入的名称是否也包含在消息中

<input type="hidden" id="Message" value="<%= rsDetail.Fields("Message") %>">
<input type="hidden" id="FirstName" value="<%= rsDetail.Fields("FirstName")%>">

<script type="text/javascript">
<!--
function NameCheck(){
var FirstName=document.getElementByID('FirstName');
var CardMessage=document.getElementByID('Message');
var aPosition = CardMessage.indexOf('FirstName');

if (aPosition == -1)
alert("Name Not In Message.");
}
-->
</script>

<a href="NextPage.asp" onClick="NameCheck();">Proceed</a>

'FirstName'
带引号的是字符串,而不是变量
FirstName
。你需要:

// remove the quote, pass the variable FirstName instead of string 'FirstName'
var aPosition = CardMessage.indexOf(FirstName);
编辑:我以前错过了两件事。首先需要获取节点的值,第二个是大写的D。因此正确的代码是:

var FirstName = document.getElementById('FirstName').value;
var aPosition = CardMessage.indexOf(FirstName);

似乎您正在尝试获取输入的值
FirstName
getElementById()
只返回节点本身。而是访问其值:

var FirstName = document.getElementById('FirstName').value;
var CardMessage = document.getElementById('Message').value;

// Then use the variable `FirstName` instead of the quoted string
var aPosition = CardMessage.indexOf(FirstName);

// Best practice would be to use === for strict type comarison here...
if (aPosition === -1)
  alert("Name Not In Message.");
}

另外,请注意您拼错了
getElementById
,在结尾处大写的
D
应该是小写。

document.getElementById
应该是
document.getElementById
试试:

var FirstName=document.getElementByID('FirstName');
var aPosition = CardMessage.indexOf(FirstName);

在您的示例中,您正在查找以下字符串
FirstName
而不是变量
FirstName

的值,我认为这就是您正在尝试的

var FirstName=document.getElementById('FirstName').value;
var CardMessage=document.getElementById('Message').value;
var aPosition = CardMessage.indexOf( FirstName );

使用jQuery的最佳方式。您的代码我们可以缩小到最多2行:

$("#click").click(function() {
    var found = $('#Message').val().indexOf($("#FirstName").val());
    console.log(found);
});
indexOf()
方法返回字符串中指定值第一次出现的位置。 如果要搜索的值从未出现,则此方法返回
-1

注意:
indexOf()
方法区分大小写。

document.getElementById()
返回元素,而不是元素的值。要获取元素的值,可以执行
document.getElementById('someId').value
。如何修改代码,以便在警报上获得一个yes-no选项,其中yes允许用户前进,但no将其保留在页面上。@Darren Cook而不是
警报()
使用
确认()
并返回其值:
返回确认('Name not in message');