0

複数の SELECT ボックスを含むフォームがあり、ユーザーの選択に基づいて値が表示されます。これは完全に機能しています。

ここで、これらの値の合計を自動的に、またはボタンを押したときに計算するスクリプトが必要です。

これまでの完全なコードは次のとおりです。

JavaScript:

<script type="text/javascript">
window.onload=function(a,b)
{
    value=document.getElementById('value1'),
    combobox=document.getElementById('first');

    combobox.onchange=function(a)
    {
    document.getElementById('value1').innerHTML = "&euro; " +this.value;
    }

    value2=document.getElementById('value2'), 
    combobox2=document.getElementById('second');

    combobox2.onchange=function(b)
    {
    document.getElementById('value2').innerHTML = "&euro; " +this.value;
    }
}
function changeText(){
var sum;    
sum= (value * 1) + (value2 * 1);
document.getElementById('sum').innerHTML = "&euro; " +this.value;
}
</script>

HTML:

        <ol> 
            <li><label><span>First</span></label>
            <select name="block1" id="first"> 
                <option value="0">Please select...</option>
                <option value="1">Summer</option> 
                <option value="2">Spring</option> 
            </select></li> 
        </ol>       
        <ol> 
            <li><label><span>Second</span></label>
            <select name="block2" id="second">
                <option value="0">Please select...</option> 
                <option value="1">Summer</option> 
                <option value="2">Spring</option> 
                <option value="3">Pink</option> 
                <option value="4">Corporate</option> 
            </select></li> 
        </ol>

        <div id="value1">value 1</div>
        <div id="value2">value 2</div>

        <input type='button' onclick='changeText()' value='Calculate'/> 

        <div id="sum">Total here</div>

誰かが助けてくれたら、それは素晴らしいことです。私は本当にそれを理解することはできません。大変感謝します!!

4

1 に答える 1

1

計算に対応するために JavaScript を少し変更したところ、問題なく動作するようになりました。

window.onload=function(a,b)
{
    value=document.getElementById('value1'),
    combobox=document.getElementById('first');

    combobox.onchange=function(a)
    {
    document.getElementById('value1').innerHTML = "&euro; " +this.value;
    }

    value2=document.getElementById('value2'), 
    combobox2=document.getElementById('second');

    combobox2.onchange=function(b)
    {
    document.getElementById('value2').innerHTML = "&euro; " +this.value;
    }
}
function changeText(){
var sum;    
div1Value = document.getElementById('value1').innerHTML.replace(/[^0-9]/g, '')*1;
div2Value = document.getElementById('value2').innerHTML.replace(/[^0-9]/g, '')*1;
sum = div1Value + div2Value;
document.getElementById('sum').innerHTML = "&euro; " +sum;
}​

例: http://jsbin.com/awici/2

ただし、これは少し不安定なので、他のアプローチを使用して、数値を文字列として扱うことをお勧めします。

良いアプローチは、隠しフィールドに値を保存し、そこで値を単純に計算することです。

これが物事を明確にし、あなたを助けることを願っています. わからないことは遠慮なく聞いてください

于 2010-03-11T11:52:39.847 に答える