0

jQueryライブラリが正しくインポートされておらず、ボタンをクリックしたときにフォームのBACフィールドに回答が表示されていません。この点から、答えは比較的単純なはずです。BACフィールドの表示コードを確認してください。

    <html>
    <head>
    <meta charset="utf-8" />
    <title>bac2</title>
    </head>
    <body>
    <p></p>
        <form action="" id="bacForm">
        <input type="radio" name="gender" value="male" /> Male<br /><br>
        <input type="radio" name="gender" value="female" /> Female<br><br>
        Weight <input type="text" name="weight" id="weight"/><br><br>
        Hours  <input type="text" name="hours" id="hours" /><br><br>
        Drinks <input type="text" name="drinks" id="drinks"/><br><br>
        <INPUT TYPE="button" value="submit" name="submit"><br><br>
        BAC: <input type="text" name="bac" id="bac"/>

        </form>         

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>           
    <script type="text/javascript">
            $('#submit').click(function(){

        var gender = $('input[name=gender]:checked', '#bacForm').val();
        var weight = parseInt($('#weight').val()) || 0;
        var hours = parseInt($('#hours').val()) || 0;
        var drinks = parseInt($('#drinks').val()) || 0;
        var bac = 0;

        if (gender=="male"){
            bac = ((drinks * .06 * 100 * 1.055) / (weight * .68)) - (0.015 * hours);
        }else if(gender=="female"){
            bac = ((drinks * .06 * 100 * 1.055) / (weight * .55)) - (0.015 * hours);
        }
        $('#bac').val(bac);

    });


    </script>   






    </body>
    </html>
4

4 に答える 4

1

あなたの質問に答えるために:はい、ラジオボタンとテキストボックスからの値を使用して計算を実行することは確かに可能です。

特定のシナリオでは、より具体的な質問をする必要があります。コードにいくつかのブレークポイントを設定して、実行時に何が起こるかを確認してください...質問を投稿するときは、期待とは異なる何かを正確にどこで実行するかを教えてください。

于 2012-05-16T02:01:28.513 に答える
1

あなたはJSを学んでいるだけだと思いますが、そのコードはすべて、非常に不必要で、複雑で、複雑な方法で記述しています。そのコードは非常に単純化できます。次の例を参照してください(値を取得しやすくするためにjQueryを使用していることに注意してください)

// get values
var bac = 0;
var gender = $('input[name="gender"]:checked').val();
var weight = $('#weight').val();
var hours = $('#hours').val();
var drinks = $('#drinks').val();

// calculate bac
if ( gender == 'male' ) {
    bac = ((drinks * .06 * 100 * 1.055) / (weight * .68)) - (0.015 * hours);
}
else {
    bac = ((drinks * .06 * 100 * 1.055) / (weight * .55)) - (0.015 * hours);
}

// round to 2 decimal places
bac = Math.round(bac * 100) / 100;

$('#bac').val(bac);

これはhttp://jsfiddle.net/dYhpC/でライブで見ることができます

于 2012-05-16T02:05:35.000 に答える
1

あなたはシンプルなものを探していると言ったので、私はこれへのよりシンプルなアプローチを示す簡単なjQueryフィドルをまとめました。ここでそれをチェックしてください:http://jsfiddle.net/brianmat/rQLtE/

メインコードは以下の通りです

$('#submit').click(function(){

    var gender = $('input[name=gender]:checked', '#bacForm').val();
    var weight = parseInt($('#weight').val()) || 0;
    var hours = parseInt($('#hours').val()) || 0;
    var drinks = parseInt($('#drinks').val()) || 0;
    var bac = 0;

    if (gender=="male"){
        bac = ((drinks * .06 * 100 * 1.055) / (weight * .68)) - (0.015 * hours);
    }else if(gender=="female"){
        bac = ((drinks * .06 * 100 * 1.055) / (weight * .55)) - (0.015 * hours);
    }
    $('#answer').val(bac);

});
于 2012-05-16T02:23:17.273 に答える
0

完成品は次のとおりです。http: //bac.klinetel.com/ ; 私が言わなければならないまともな大学のツール。

于 2012-06-27T03:26:37.720 に答える