2012-12-16 58 views
0

我試圖刪除文本框的樣式或背景以在點擊10次後顯示內容。我怎麼能在Javascript上做到這一點?如何在點擊10次後禁用輸入屬性?

這裏是我的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; 
    } 
} 
+0

你每次執行函數都重新定義這個變量,所以它永遠不會超過'1'。 definte'try'在函數外部:'var tries = 0;',然後在check()函數內部使用一個簡單的'tries ++;'。 –

+0

document.getElementById('firstN')。disabled = true;似乎沒有工作。當我將其更改爲提醒('blahblah')時,它工作。它似乎能夠計數點擊雖然 – huehuegg

+0

@ user1893388請記住接受這個問題的正確答案:) – TNCodeMonkey

回答

2

的問題是,tries是一個局部變量(局部到check功能)。每次check被調用時,創建了一個名爲tries新的變量,並初始化爲0

試試這個:

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

(我假設你已經有一些代碼來調用check當元素)

+0

grrr,正確的,因爲我打了輸入您的帖子彈出>。< – TNCodeMonkey

+0

感謝您的回覆, 我'已經嘗試了你的建議,但它沒有奏效。 這裏是從html部分: 我試圖禁用10點擊 是的我有代碼調用支票() – huehuegg

+0

@ user1893388 ** http://jsfiddle.net/d3YuA/1/** –

1

你正在實例化一個var「試試」,每次你進入這個函數。移動可變升了一級到地方將遞增:

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

+0

document.getElementById('firstN')。disabled = true;似乎沒有工作。 當我將它更改爲提醒('blahblah')時,它工作。 它似乎能夠計算點擊次數。 – huehuegg

+0

@ user1893388我用一個你需要的小工具更新了這篇文章。希望它適用於你! – TNCodeMonkey

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);" 
+0

一張餅乾在這裏真的很不自在。 –

+0

我想你是對的。這將更好地優化頁面到頁面計數 –

+2

爲什麼這會降低投票?我仍然認爲這對任何需要它的人來說都是一個很好的答案,因爲它明顯的推理。 –

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> 
相關問題