JavaScript/JQuery 函数不返回任何内容

JavaScript/JQuery function doesn't return anything

本文关键字:返回 任何内 函数 JQuery JavaScript      更新时间:2023-09-26

我在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>

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

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

// 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。

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

$("#target").submit(function (evt) {
    evt.preventDefault();
    ...
return false;

应该足够了。

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

e.preventDefault();
e.stopPropagation();

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

function test() {
    return 5;
}