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 に答える