0

さて、私がする必要があるのは、キーが押されたときに画面上のいくつかの数字を変更することです。私はそれを機能させていますが、私はそれに満足していません。

入力フィールドと、入力フィールドの値が変更されたときに更新されるdivがあります。入力フィールドの点滅するカラットなどに制約されないようにするためにこれを行いました。入力フィールドをまったく表示したくないのですが、CSSまたはtype="hidden"で非表示にすると機能しなくなります。私はこれをJS変数で機能させようとしていましたが、これまでのところ成功していません。

何か案は?

HTML

<html>
<head>
 <link rel="stylesheet" type="text/css" href="number.css" />
</head>

<body onLoad="focus();myText.focus();changeNumber()">

<div id='number'>

</div>

<input type="text" id="myText" value="1"/>

</body>

<footer>
<script type="text/javascript" src="number.js"></script>
</footer>

</html>

JAVASCRIPT

var myText = document.getElementById("myText");

function changeNumber(){
var userInput = document.getElementById('myText').value;
document.getElementById('number').innerHTML = userInput;
}

// Capture keyDown events
myText.onkeydown = function(e) {
// "34" is the up arrow key
if (e.keyCode == 34) {
    // increment the value in the text input
    myText.value++;
changeNumber()

// "33" is the down arrow key
} else if (e.keyCode == 33 && myText.value > 1) {
    // decrement the value in the text input
    myText.value--;
changeNumber()
}
}

ここに最終的な修正されたコードがあります*みんなありがとう!****

HTML

<html>
<head>
 <link rel="stylesheet" type="text/css" href="number.css" />
</head>

<body onLoad="focus();number.focus();changeNumber()">

<div id='number' value="1">

</div>

</body>

<footer>
<script type="text/javascript" src="number.js"></script>
</footer>

</html>

JAVASCRIPT

var i = parseInt(1);

function changeNumber(){
var userInput = i;
document.getElementById('number').innerHTML = userInput;
}

// Capture keyDown events for document
document.onkeydown = function(e) {
// "34" is the PGUp key
if (e.keyCode == 34) {
    // increment the value in the text input
    (i++);
changeNumber()

// "33" is the PGDown key
} else if (e.keyCode == 33 && i > 1) {
    // decrement the value in the text input
    (i--);
changeNumber()
}

// "66" is the b key
if (e.keyCode == 66){
window.location.reload()
} 

}
4

1 に答える 1

0

コードの問題は次のとおりです。

myText.value--;

myText.value++;

myTextはDOM要素であり、valueプロパティには整数ではなく文字列が含まれているため、次のようにすることをお勧めします。

var i = parseInt(myText.value);
myText.value = (i++);
于 2011-10-14T14:11:38.593 に答える