2009-02-19 8 views
6

Chcę wyłączyć przycisk łącza po kliknięciu go na inny & inne włączenie. przełącznik włącz/wyłącz pomiędzy dwoma przyciskami łącza przy użyciu javascriptChcę wyłączyć przycisk łącza po kliknięciu i innym włączeniu. przełączanie włączania/wyłączania między dwoma przyciskami linków za pomocą javascript

<a id="a1" href="page1.aspx">One</a><a id="a2" href="page2.aspx">Two</a> 
+0

@Jogini: Rozpocznij linię za pomocą 4 spacji i zostanie ona sformatowana jako kod. – some

Odpowiedz

1

można otworzyć i ustawić „wyłączone” atrybut tak:

if(somebutton.disabled == true){ 
    somebutton.disabled = false; 
} 

Polecam używanie ramy JavaScript, takich jak jQuery.

+4

Nie ma "wyłączonego" atrybutu dla linków, a to nie działa. –

+0

Dokładniej mówiąc, dodanie linku "wyłączony" będzie działało, ale tylko w przypadku Internet Explorera. –

4

Proste, wystarczy dodać odbiorców do zdarzeń onclick w obu linkach, które wyłączają dany link i włączają drugi.

Coś

document.getElementById('a1').onclick = function() { 
    document.getElementById('a1').disabled = true; 
    document.getElementById('a2').disabled = false; 
}; 

document.getElementById('a2').onclick = function() { 
    document.getElementById('a2').disabled = true; 
    document.getElementById('a1').disabled = false; 
};

Oczywiście jeśli będzie to rozszerzenie do wielu przycisków następnie można łatwo streszczenie powyższego się do metod rejestracji, zapętlenie nad tablicami przycisków itp (ewentualnie tych, które implementować daną klasę zamiast jawnie określać tablicę).

+0

możemy to zrobić za pomocą dowolnej własności lub css. – Yogini

1

Twoje pytanie może mieć jeden z 3 następujących możliwych scenariuszy. Wybierz, które apartamenty są twoim problemem.

Przypadek1) Połów w pytaniu jest taki, że ponieważ są to odnośniki wskazujące odpowiednio strony page1.aspx i page2.aspx po kliknięciu łącza, nowa strona ładuje się w przeglądarce. Efekt, który chcesz osiągnąć, nie ma znaczenia.

Przypadek 2) Jeśli posiadasz zarówno linki "Jeden" i "Dwa" na każdej ze stron aspx, możesz równie dobrze zakodować blokadę odsyłacza wskazującego na siebie. (Lub też nie ma łącza w ogóle).

Przypadek 3) Jeśli masz ramkę do wyświetlania linków "Jeden", "Dwa" i masz inną ramkę do załadowania treści obu linków, twoje pytanie ma znaczenie wyłączające inne łącze. Oto kod dla tego samego.

<html> 
<a id="a1" href="javascript:void(0)" onclick="toggle(objA1,objA2,'page1.aspx')">One</a> 
<a id="a2" href="javascript:void(0)" onclick="toggle(objA2,objA1,'page2.aspx')">Two</a> 
<br><iframe id="ifrm" src=""></iframe> 

<script> 
    var objA1 = document.getElementById('a1'); 
    var objA2 = document.getElementById('a2'); 

    // d=element to disable, e=element to enable 
    function toggle(d,e,link) 
    { 
     //if already disabled do nothing(don't follow url) 
     if(d.disabled) return; 

     //enable/disable 
     d.disabled = true; 
     d.style.cursor = 'default'; 
     e.disabled = false; 
     e.style.cursor = 'hand'; 

     //follow link 
     ifrm.src = link; 
    } 
</script> 
</html> 
2

Najprostszym sposobem jest hide łącza zamiast uczynić go niepełnosprawnych.

Możesz użyć tego kodu, aby ukryć link po kliknięciu w niego.

Testowany kod & zadziałał idealnie. :-)

<script type="text/javascript"> 
    onclick = function() { 
     var chk= document.getElementById('myElementId'); 
     chk.style.display="none"; 
    }; 
</script> 
0
<html> 
<head> 

<script type="text/javascript" src="jquery-1.4.2.min.js"></script> 

<style type="text/css"> 
    .submit{ 
     padding:8px; 
     border:1px solid blue; 
    } 
</style> 

</head> 

<body> 

<h1>Disabled submit form button after clicked with jQuery</h1> 

<form action="#"> 
    <p> 
     I'm a form ~ 
    </p> 
    <input type="submit" value="Submit"></input> 
     <button>Enable Submit Button</button> 
</form> 

<script type="text/javascript"> 

$('input:submit').click(function(){ 
    $('p').text("Form submiting.....").addClass('submit'); 
    $('input:submit').attr("disabled", true); 
}); 

$('button').click(function(){ 
    $('p').text("I'm a form ~").removeClass('submit'); 
    $('input:submit').attr("disabled", false); 
}); 

</script> 

</body> 
</html> 
0
<script type="text/javascript"> 
    function validateForm(formObj) { 
     if (formObj.username.value=='') { 
      alert('Please enter a username'); 
      return false; 
     } 
     formObj.submitButton.disabled = true; 
     formObj.submitButton.value = 'Please Wait...'; 
     return true; 
    } 
</script> 
<form name="frmTest" action="" method="post" onsubmit="return validateForm(this);"> 
    Username: <input type="text" name="username" value="" /><br /> 
    <input type="submit" name="submitButton" value="Submit" /> 
</form> ​​​​​​ 
+1

to jest link, a nie przycisk – stuartdotnet

1

Aby wyłączyć LINK zamiast przycisku, jedyne co można zrobić oprócz ukrywając to, aby ustawić go nie iść gdziekolwiek.

onclick="this.href='javascript: void(0)';" 
Powiązane problemy