2013-04-25 2 views
1

Мне нужно, чтобы кто-то из бизнеса покинул много лет назад со стареющей текстовой системой.Variable Returning NaN Value - Не могу узнать, почему

Он был построен с использованием ASP classic и отправляет строку в API, который затем выводит текст, все это не здесь и не там. Проблема, с которой я сталкиваюсь, - это не опыт работы с JS, я разработчик SQL и несколько лет назад немного поработал в ASP Classic (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> 

Приветствия.

ответ

5

Когда вы 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) 
+0

Спасибо :) Это волшебство. – Lynchie

1

ли это нормально, что вы используете Cover2 в замене, когда вы читаете значение входного и хранить его в Обложка переменная?

Это две разные переменные и код, который вы предоставили, мы можем только предположить, что Cover2 инициализирован NaN (это может быть не так, это может быть ошибка копирования/вставки).

0

Вот как это сделать:

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/

Наслаждайтесь