我点击它时会禁用按钮,但是当我刷新页面时,它仍应被禁用。我怎么能这样做?
<button onclick="this.disabled = true">Disable</button>
答案 0 :(得分:2)
您应该使用cookies
。页面刷新后Javascript不会保留页面状态(当然除非你在服务器端):
function setCookie(name, value){
// Set cookie to `namevalue;`
// Won't overwrite existing values with different names
document.cookie = name + value + ';';
}
function checkIfClicked(){
// Split by `;`
var cookie = document.cookie.split(";");
// iterate over cookie array
for(var i = 0; i < cookie.length; i++){
var c = cookie[i];
// if it contains string "click"
if(/click/.test(c))
return true;
}
// cookie does not exist
return false;
}
// Set clicked to either the existing cookie or false
var clicked = checkIfClicked();
// Check if it was clicked before
alert(clicked);
// Get the button
var button = document.getElementsByTagName("button")[0];
// If it had been clicked, diable button
if (clicked) button.disabled = true;
// Add event listener
// When button clicked, set `click` cookie to true
// and disable button
button.addEventListener("click", function(){
setCookie("click", "true");
button.disabled = true;
}, false);
答案 1 :(得分:1)
<button id="clic">Click For Disable</button>
function setCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
$('#clic').click(function(){
$(this).attr('disabled',true);
setCookie('DisableBtn', true, null);
});
if(getCookie('DisableBtn'))
$('#clic').attr('disabled',true);