0

テキスト ボックスのスタイルまたは背景を削除して、10 回クリックした後にコンテンツを表示しようとしています。Javascriptでそれを行うにはどうすればよいですか?

ここに私のhtmlがあります:

<input id="firstN" type="text" style="color:#FF0000; background-color:#FF0000">

ここに私のJSがあります:

 function check() {

    var tries++;

    if (tries == 10){
        document.getElementById('firstN').disabled= true;
    }
}
4

4 に答える 4

2

問題は、それtriesがローカル変数 (check関数に対してローカル) であることです。が呼び出されるたびcheckに、 という名前の新しい変数triesが作成され、0 に初期化されます。

代わりにこれを試してください:

var tries = 0;
function check() {
  tries++;
  if (tries == 10) {
    document.getElementById('firstN').style.background = '#ffffff';
  }
}

(要素がクリックされたときに呼び出すコードが既にあると仮定していcheckます。ない場合は、要素にクリック ハンドラーを追加する必要があります。)

于 2012-12-16T04:58:44.623 に答える
1

この関数に入るたびに、変数の「試行」をインスタンス化しています。変数をインクリメントするレベルまで移動します。

var btn = document.getElementById("btnclick");
btn.onclick = check;
var tries = 0;
function check() {

    tries++;

    if (tries == 10){
        var ele = document.getElementById("firstN");
        ele.value= "DISABLED";

        ele.disabled = true;
    }
}​

編集:

ワーキングJSFiddle

于 2012-12-16T04:59:07.947 に答える
0

どうぞ。動作することがわかったら、アラートラインを削除します。

<html>
<head>
    <title>Test</title>

    <script>
 function check(){

    var getClicks = parseInt(document.getElementById('firstN').getAttribute('clicks')); //Get Old value

    document.getElementById('firstN').setAttribute("clicks", 1 + getClicks); //Add 1

    if (getClicks === 10){ //Check
        alert('Locked');
        document.getElementById('firstN').disabled= true;
    } else {
        alert(getClicks); //Remove else statement when you see it works.
    }

}

    </script>
</head>
<body>

<form action="#">
    Input Box: <input id="firstN" type="text" style="color:#FF0000; background-color:#FF0000" onclick="check();" clicks="0">
    <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>
于 2012-12-16T05:54:12.437 に答える
0

Cookie に保存します。

<script type="text/javascript">var clicks = 0;</script>
<input id="firstN" type="text" style="color:#FF0000; background-color:#FF0000" value="Click" onclick="clicks++">

onclick="$.cookie('clicks', $.cookie('clicks') + 1);"
于 2012-12-16T05:01:44.457 に答える