0

我在 JavaScript/JQuery 中的函数不返回任何内容;我希望它为我返回结果,但它不会。正如你所看到的,返回的是,$("#resultado").html("O Valor do produto ficara "+resultado);但是当函数运行时这并没有出现:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
     $("#target").submit(function(){

    var preco_dolar = $("#preco_dolar").val(); 
    var dolar = $("#dolar").val();
    var frete = $("#frete").val();


    if ($('#drop').is(':checked'))
    {
    var drop = 5.8;
    }else var drop = 0; 


    if(typeof preco_dolar == "undefined"){
        alert("Erro ! Falta preco do produto");
    }

    if(typeof frete == "undefined"){
        var frete = 40;
    }

    if(typeof dolar == "undefined"){
        var dolar = 2.16;
    }




    var resultado = (preco_dolar*dolar)+frete;

    $("#resultado").html("O Valor do produto ficara "+resultado);




});
</script>

有人可以指出我要去哪里错了吗?

4

4 回答 4

1

您没有调用表单提交,因此页面正在刷新和重置页面。用于preventDefault停止表单提交。

$("#target").submit(function (evt) {
    evt.preventDefault();
    ...
于 2013-01-23T18:38:55.630 回答
1
return false;

应该足够了。

或者,您可以通过以下方式阻止默认行为

e.preventDefault();
e.stopPropagation();
于 2013-01-23T18:40:42.407 回答
1

首先,您需要将脚本包装到

// here $("#target") is nothing

$(document).ready(function () {
    // here $("target") exists
});

第二为了你的改进,不要使用

if(typeof dolar == "undefined"){
    dolar = 2.16;
}

改为使用

if(!dolar){
    dolar = 2.16;
}

这和你做的一样:

if(!dolar && dolar == 0 && dolar == "" && dolar == false && dolar == undefined){
    dolar = 2.16;
}

要使 0 成为有效值,请使用

if (!dolar && dolar !== 0) {
    dolar = 2.16;
}

也不要使用var dolar = 0;两次。如果您已经声明了它,只需使用dolar =, 就不会覆盖已经声明的 var。

于 2013-01-23T18:42:45.707 回答
0

你没有return声明。Javascript 函数需要一个 return 语句来返回一个值:

function test() {
    return 5;
}
于 2013-01-23T18:39:47.527 回答