2015-01-09 78 views
1
<script type="text/javascript"> 
function incr() { 
var v1=document.getElementById('p1').value; 
document.getElementById("p1").value= v1 + 1; 
} 
</script> 

</head> 

<body> 
<form id="form_Warpper" action="data.php" method="post" onsubmit="return validateForm();"> 
    <progress value="0" max="100" id="p1"></progress> 
       <p> 1. </p> 
       <label> I am sexy. </label> 
       <div class="allQuestion"><?php for($i=1; $i<=10; $i++){?><input type="radio" name="Dq[1]" value="<?=$i?>" onClick='incr();'> <?=$i?> <?php } ?></div> 
       </div> 
</body> 

我需要把onclick,但只希望它能夠被點擊一次。我有100個問題。我只需要它來增加點擊廣播時的百分比。它應該只能點擊一次,但這個,如果我再次點擊它不斷增加。我怎樣才能讓它只被點擊一次?如何創建一個只能點擊一次的點擊處理程序?

因爲我有10個問題,我不能使用true或false打開和關閉。

回答

0

我想用戶jquery one()函數。例如,

$("#foo").one("click", function() { 
    alert("This will be displayed only once."); 
}); 

這裏是像http://api.jquery.com/one/

+0

我不希望使用jQuery的任何想法如何的例子嗎?謝謝。 – 2015-01-09 19:05:36

0
var trigger = 0; 

function incr() { 

    if (trigger == 0) { 

     var v1=document.getElementById('p1').value; 

     document.getElementById("p1").value= v1 + 1; 

     trigger = 1; 

    }; 

}; 
0

還有就是情侶的方式,你可以做到這一點,其中之一是禁用的單選按鈕組,一旦用戶選擇了一個()值,否則保持這樣的全局變量

    <script> 
        var updated = false; 
        function incr() { 
         if(updated == false){ 
         var v1=document.getElementById('p1').value; 
         document.getElementById("p1").value= v1 + 1; 
         updated = true; 
         } 
         } 
        </script> 
+0

但我也使用這個其他問題,我得到了10個問題使用相同的incr關閉組,但如果關閉1個問題其他不會功能以及。感謝幫助 – 2015-01-11 16:58:28

+0

我同意這就是爲什麼我給你的代碼不需要禁用,但設置標誌 – Devesh 2015-01-12 10:55:34

0

如果你不想使用jQuery,你可以很容易地創建你自己的一次函數。

function once(fn) { 
    var called = false; 
    return function() { 
     !called && fn(); 
     called = true; 
    } 
} 

這裏有一個如何使用它http://codepen.io/zachwolf/pen/jEyZqY

+0

,但我也有其他問題,如果它成爲假我的其他問題將無法再次點擊它。 – 2015-01-09 19:29:21

+0

不,該變量對於該函數的執行是本地的。 – Xotic750 2015-01-09 20:11:04