-5

私はこの短い html と javascript コードを書きました。http://jsfiddle.net/a4Mz5/8/でコードにアクセスできますが、機能していないようです。送信のクリック時に入力される値を探しています。

<html>
<head> Simple page </head>
<body>    
    <form id="enrollment">
        <input type="button" value="submit" onclick="updateCost();">

        value = <input type="text" name="cost">
    </form>    

<script>
function updateCost(){
    document.enrollment.cost.value = formatCurrency(0.9946153813);
}
function formatCurrency(num) {
    if(isNaN(num)) return "$0.00";
    // ACCOUNTING RULES: ROUND DOWN IF LAST DIGIT IS 5 AND SECOND TO LAST DIGIT IS EVEN
    num = new String(parseFloat(num).toFixed(3));
    if(num.charAt(num.length-1) == '5' && parseInt(num.charAt(num.length-2)) % 2 == 0) {
    num = num.substring(0,num.length-1);
    }   
    var cents = Math.abs(Math.round((num * 100) % 100));
    if(cents < 10) {
        cents = "0" + cents;
    }    
    var n = ""; var count = 0; var neg = num < 0;
    num = Math.floor(Math.abs(num)).toString();
    for(var i = num.length - 1; i >= 0; i--) {
        if(count > 0 && count % 3 == 0) n = "," + n;
        n = num.charAt(i) + n;
        count++;
    }    
    return (neg ? "-" : "") + ("$" + n + "." + cents);
}
</script>
</body></html>
4

3 に答える 3

2

あなたがする必要がある2つのことがあります:

  1. [フレームワークの選択]で、[onLoad]ではなく[no wrap(head)]を選択します。
  2. <form id="enrollment">に変更<form name="enrollment">
于 2012-12-04T21:14:53.327 に答える
1

これを試して:

    <html>
    <head> 
    <title>Simple page</title>
    <script type='text/javascript'>
         function updateCost(){
            document.getElementsByName('cost')[0].value = 1221;
         }
     </script> 
    </head>
    <body>    
        <form id="enrollment">
            <input type="button" value="submit" onclick="updateCost();">

            value = <input type="text" name="cost">
        </form> 
于 2012-12-04T21:13:02.680 に答える
1

jsFiddle で動作させることはできません。のエラーが表示され続けますReferenceError: updateCost is not defined

onLoad[編集] に変更すると、以下の回答が jsFiddle で機能しますno wrap (head)

すべてのコードを自分のコンピューターの HTML ファイルに移動し、javascript を頭に配置しました。

document.enrollment.cost.value = 1221;

document.forms.enrollment.cost.value = 1221;
于 2012-12-04T21:09:44.843 に答える