0

一連の単純な方程式を処理するアプリケーションを JavaScript で作成しています。それは主に 0 から 10 までの数字を含む足し算ですが、文字 X も同様に使用できるようにする必要があります: 数字の 10 として数えます。これは私が持っているものの一部です:

<script type="text/javascript">
    function updateround() {
        document.form.round01.value = (document.form.arrow01.value -0) + (document.form.arrow02.value -0) + (document.form.arrow03.value -0);
    }
</script>
<body>
    <center>
            <form name="form">
                <table>
                    <tr>
                        <td><input name="arrow01" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="arrow02" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="arrow03" style="width: 30px;" onChange="updateround()"></td>
                        <td><input name="round01" style="width: 30px;"></td>
                    </tr>
                </table>
            </form>
    </center>
</body>

これを実行すると、4 つの入力フィールドが得られます。最初の 3 つに数字を書き込んで別の場所をクリックすると、4 つ目のフィールドに加算されます。

私が探しているのは、文字 X を最初の 3 つのフィールドのいずれかに入力すると、アプリケーションがそれを数式で 10 として使用するようにする方法です。たとえば、最初の 3 つのフィールドに X、9、および 9 を入力すると、4 番目のフィールドに 28 が表示され、X、X、および 6 を入力すると、26 が表示されます。また、このコードをアプリケーションのどこに配置すればよいですか?

よろしくお願いします。

4

2 に答える 2

1

base-eleven-system を使用する場合はparseInt、基数 11を使用できます。の代わりにa/が必要になるため、前に置換を使用する必要があります。AX

parseInt(document.form.arrow01.value.replace(/x/gi, "a"), 11)

出力にも基数 11 を使用する場合は、次toStringの置換を再度使用できます。

result.toString(11).replace(/a/gi, "X");
于 2013-03-17T11:41:12.937 に答える
0

追加する小さな追加機能を次に示します。

function val_or_x_from_object(obj) {
    if (obj.value == "x" || obj.value == "X") {
        return 10;  
    }
    else {
        val = parseFloat(obj.value);
        return (isNaN(val)? 0 : val);
    }
}

function updateround() {
        document.form.round01.value = val_or_x_from_object(document.form.arrow01) + 
           val_or_x_from_object(document.form.arrow02) + 
            val_or_x_from_object(document.form.arrow03);
    }
于 2013-03-17T11:48:40.960 に答える