变量返回NaN值——找不到原因



我不得不从这个行业的一个人多年前留下的老旧的短信系统开始。

它是使用ASP经典构建的,并将字符串发送到API,然后文本输出,所有这些都不是这里也不是那里。我的问题是没有JS经验,我是一个SQL开发人员,几年前做了一点ASP经典(VBScript)。

这段JScript从几个表单框中获取信息,然后将它们放在一个字符串中,然后将该字符串传递给处理页面上的变量以输出文本。字段'QValue, Indemnity和Excess'都是数字。封面是文本,它将封面文本替换为'NaN',现在我明白这是'Not A Number',这就是它,不是一个数字,但我想要文本字符串。

下面是有问题的代码片段:

<script type="text/javascript">
function changeMessageText()
{
var messagetxt = document.getElementById('message').value
var QValue = document.getElementById('QValue').value
var Cover = document.getElementById('Cover').value
var Excess = document.getElementById('Excess').value
var Indem = document.getElementById('Indemnity').value
var messagetxt=messagetxt.replace("[QValue]", + QValue)
var messagetxt=messagetxt.replace("[Cover]", + Cover2)
var messagetxt=messagetxt.replace("[Excess]", + Excess)
var messagetxt=messagetxt.replace("[Indem]", + Indem)
document.getElementById('messageText').innerHTML = messagetxt;
}
</script>

欢呼。

当您做string.replace(searchvalue,newvalue)时,在newValue之前不需要+

var messagetxt=messagetxt.replace("[QValue]", QValue)
//cover or cover2 whichever appropriate
var messagetxt=messagetxt.replace("[Cover]",  Cover) 
var messagetxt=messagetxt.replace("[Excess]",  Excess)
var messagetxt=messagetxt.replace("[Indem]",  Indem)

在您读取输入值并将其存储在Cover变量中的替换中使用Cover2是否正常?

这是两个不同的变量,从您提供的代码中,我们只能假设Cover2是用NaN初始化的(可能不是这种情况,可能是复制/粘贴错误)。

方法如下:

var messagetxt = document.getElementById('message').value;
var QValue = document.getElementById('QValue').value
var Cover = document.getElementById('Cover').value
var messagetxt=messagetxt.replace("[QValue]", QValue)
var messagetxt=messagetxt.replace("[Cover]", Cover)
document.getElementById('messagetxt').innerHTML = messagetxt;

下面是一个工作示例:http://jsfiddle.net/F24cr/

享受

最新更新