0

我使用以下代码创建了两个连接的按钮。一个在另一个被禁用时启用,反之亦然。现在的问题是,当我刷新浏览器页面时,按钮会恢复到原始状态,我希望它们仅在刷新页面时才保持当前状态,并且应该仅在手动按下按钮时更改状态。我怎样才能做到这一点.

提前致谢。

<button onclick="document.getElementById('start').disabled=true;document.getElementById('stop').disabled=false;" type="submit" class="positive" name="start" id="start">start</button>

<button onclick="this.disabled=true;document.getElementById('start').disabled=false;" type="submit" class="negative" name="stop" id="stop">Stop</button>    

我有一个想法,通过使用会话 cookie 我可以做到,但我不知道如何访问它们。

4

1 回答 1

-1

只需使用按钮的禁用属性

<button onclick="this.disabled=true;document.getElementById('start').disabled=false;" type="submit" class="negative" name="stop" id="stop" disabled>Stop</button>   

编辑

我给了你一个关于如何做的想法。即设置按钮的禁用属性。当您希望禁用它时,即在服务器上或客户端上以及基于什么条件,这取决于您。

如果您想在服务器上设置它,您必须通过AJAX调用将当前选择的按钮发送到服务器并在服务器上设置会话(您没有提到任何服务器端脚本语言,否则我会向您展示代码设置会话)

如果您想在客户端设置它,您可以使用cookielocalstorage(基于您的目标浏览器)并使用它在屏幕加载时获取先前选择的按钮。

编辑2

要在 PHP 中使用 session,请使用以下代码

function changeButtonState(id) {
    document.getElementById('start').disabled = false;
    document.getElementById('stop').disabled = false;
    document.getElementById(id).disabled = true;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            //success
        }
    }
    xmlhttp.open("GET", "saveState.php?button=" + id, true);
    xmlhttp.send();
}

HTML

    <?php 
   $id=$ _SESSION[ 'buttonId']; 
   if(strcmp ( $id , "start" )) 
   { 
    <button onclick="changeButtonState('start')" type="submit" class="positive" name="start" id="start">start</button>
    <button onclick="changeButtonState('stop')" type="submit" class="negative" name="stop" id="stop" disabled>Stop</button>
   }
   else
   {
    <button onclick="changeButtonState('start')" type="submit" class="positive" name="start" id="start" disabled>start</button>
    <button onclick="changeButtonState('stop')" type="submit" class="negative" name="stop" id="stop">Stop</button>
   } 
?>

PHP 代码saveState.php

<?php 
   $id=$_GET[ "button"]; 
   $_SESSION[ 'buttonId']=$ id; 
?>

希望这可以帮助。

于 2013-05-06T07:28:39.517 回答