2015-06-18 1 views
-4

Я хочу, чтобы код считывал входное значение для Bz и давал приветствие вместе с ответом из уравнения. Это то, что у меня есть так далеко. Это не дает «приветствия» после вычисления. Помогите?Вложенный, если - JavaScript

<html> 
    <body> 

<form id="function" onsubmit="return false" oninput="o.value = 3.21 + (9.63 * parseInt(Bz.valueAsNumber))"> 
    3.21+(9.63 *<input name="Bz" type="number" step="any">) = 
    <output name="o" for="intial set Bz">0</output>&nbsp;nT 

</form> 

<div id="mys1"></div> 

<script language="JavaScript"> 
function myMath() 
{ 
    var Bz; 
    var greeting; 
    if(Bz>-50) 
    { 
     if (Bz>-30) 
     { 
       greeting = "None"; 
     } 
     else 
     { 
       greeting = "Small "; 
     } 
     else 
     { 
       if (Bz> -80) 
       { 
        greeting = "Mild "; 
       } 
       else 
       { 
        greeting = "Large "; 
       } 
      } 
    } 
document.getElementById("mys1").innerHTML= greeting; 
}; 
</script> 

</body> 
</html> 
+0

Там нет 'else..else' строительство в JS, он должен быть' if..else..if..else' ... – Teemu

+0

@Teemu Там являются двумя операторами if. Отступы все испорчены. –

+0

У вас есть синтаксическая ошибка, отсутствующая закрывающая '}' для первого (внешнего) блока 'if'. Перед отправкой проверьте консоль ошибок и исправьте отступы. – Bergi

ответ

0

Я нашел вашу проблему. Значение Bz не загружается. Атрибут Seting name не сохраняет значение в переменной. Этот атрибут предназначен для отправки формы.

Что вы должны сделать, это:

function myMath() 
{ 
    var Bz = $("input[name='Bz']").val(); 
    ... 
    ... 
    ... 
} 
+0

'$' - jQuery. У меня этого нет в моем сценарии. Есть ли другой способ сделать это без jquery? –

+0

Итак, вы не можете использовать JQuery по какой-то причине? [Здесь] (http://stackoverflow.com/questions/11563638/javascript-get-input-text-value) вы можете найти, как настроить желаемый ввод без JQuery. Если вы можете присвоить ему ID, это просто 'var Bz = document.getElementById (" your_input_id "). Value;' –

+1

Получил! Спасибо за помощь. –

0

Адрес, где вы звоните: myMath()? Думаю, это не уволили.

Также, как вы написали свои заявления if, довольно уродливо. Это было бы гораздо приятнее:

if(Bz>-30) 
{ 
    greeting = "Small"; 
} 
else if(Bz>-50) 
{ 
    greeting = "Mid "; 
} 
else if(Bz>-80) 
{ 
    greeting = "Large"; 
} 
else 
{ 
    greeting = "None"; 
} 

Опасайтесь, что я написал это, пытаясь угадать, какое приветственное сообщение вы действительно хотите. Обратите внимание, что если первое условие выполнено, другие условия вообще не будут проверяться.

+0

Я забыл одну строку кода после уравнения:

+1

Хорошо, тогда проблема в том, что ваш 'if' не правы. Если вы объясните мне, какое приветствие вы хотите, в этом случае я напишу вам ifs. Также есть ли ошибки в консоли? Если они есть, вы должны добавить их в свой пост тоже –

+0

Нет ошибок, когда я вынул его из формата, который был изначально. Для Bz> -80 я хотел, чтобы он приветствовал Большой. Для Bz> -50, Mild. Bz> -30, Small. Предполагалось проанализировать ввод и приветствовать определение диапазона, в котором он лучше всего подходит. –