Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从jQuery中的函数返回值_Javascript_Jquery - Fatal编程技术网

Javascript 从jQuery中的函数返回值

Javascript 从jQuery中的函数返回值,javascript,jquery,Javascript,Jquery,我在jquery中有一个函数。我的函数返回一个值,但当我检查返回值时,我得到了一个“NAN”,可能是什么问题: [CODE] var vax = ('#textbox1').val(); var newVal = calculateMB(vax,11,3.1); alert(newVal); function calculateMB(num,charge,fixed) { if(num>50) var e = num - 50; var new_e =

我在jquery中有一个函数。我的函数返回一个值,但当我检查返回值时,我得到了一个“NAN”,可能是什么问题:

[CODE]

 var vax = ('#textbox1').val();

 var newVal = calculateMB(vax,11,3.1);
 alert(newVal);

 function calculateMB(num,charge,fixed)
 {
   if(num>50)
   var e = num - 50;
    var new_e = e * charge;
    new_var = new_e / 20;

     return (new_var + fixed);


   }
 [/CODE]
试一试


它将变量转换为数字。还要确保传递给calculateMB的参数实际上是数字。

您并不总是给
e
赋值,而是在计算中使用它。下面是正确缩进的代码:

function calculateMB(num,charge,fixed)
{
    if(num>50)
        var e = num - 50;

    var new_e = e * charge;
    new_var = new_e / 20;
    return (new_var + fixed);
}

num
时,我认为这是因为从文本框中读取的数字是一个字符串。尝试
var vax=Number(('#textbox1').val()

将值分配给
vax
后立即尝试
alert(vax)
。您可能没有得到您认为得到的。您的函数仅在
num>50
时返回一个值。这是个问题。@JonathanM:不,它总是返回一个值。
if
仅与它后面的行相关。(非常非常难读懂缩进都是这样的代码。)@henry:注意,这与jQuery没有任何关系。您的函数只是一个JavaScript函数。@brightgarden:是的,它们是。(我没说不是。)
e
仍将是
未定义的。提升的只是
var
部分,而不是分配部分。例如,
var E=num-50变为
var e,已吊装,且
e=num-50,它不是。
function calculateMB(num,charge,fixed)
{
    if(num>50)
        var e = num - 50;

    var new_e = e * charge;
    new_var = new_e / 20;
    return (new_var + fixed);
}
function calculateMB(num,charge,fixed)
{
    var e, new_e, new_var;

    e = (num > 50) ? num - 50 : num;
    new_e = e * charge;
    new_var = new_e / 20;
    return new_var + fixed;
}