2011-04-28 446 views
0

我有一個表格奠定了這樣的:啓用/禁用基於單選按鈕提交按鈕

<form action="join-head-2-head.php" method="POST" enctype="application/x-www-form-urlencoded"> 
    <table border="0" cellspacing="4" cellpadding="4"> 
     <tr> 
      <td colspan="2"><input name="player1rules" type="radio" id="tandcy" value="y" /> 
      <label for="tandcy">I Have Reviewed The Rules And The Terms &amp; Conditions And Agree To Abide By Them</label></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input name="player1rules" type="radio" id="tandcn" value="n" checked="checked" /><label for="tandcn">I Do Not Agree To The Terms And Condtions And/Or Have Not Read The Rules</label></td> 
     </tr> 
     <tr> 
      <td width="100"><input name="player1" type="hidden" value="<? $session->username; ?>" /></td> 
      <td><input type="submit" name="join" id="join" value="Take Available Slot" /></td> 
     </tr> 
    </table> 
</form> 

我所希望做的是禁用的提交按鈕,如果ID =「tandcn」被選中,並啓用當id =「tandcy」時。有沒有簡單的方法來做到這一點使用JavaScript?

+0

你使用jquery? – Karthik 2011-04-28 12:17:52

回答

2

例如http://jsfiddle.net/sWLDf/

$(function() { 
    var $join = $("input[name=join]"); 
    var processJoin = function (element) { 
     if(element.id == "tandcn") { 
      $join.attr("disabled", "disabled"); 
     } 
     else { 
      $join.removeAttr("disabled") 
     } 
    }; 

    $(":radio[name=player1rules]").click(function() { 
     processJoin(this); 
    }).filter(":checked").each(function() { 
     processJoin(this); 
    }); 
}); 
+0

成功!我認爲這是基於JQuery的Ivanov? – 2011-04-28 12:43:40

+0

jQuery一路,thx選擇我的答案 – 2011-04-28 12:45:35

2
$(":radio[name='player1rules']").click(function() { 
    var value = $(this).val(); 
    if (value === "n") { 
     $("#join").attr("disabled", "disabled"); 
     return; 
    } 
    $("#join").removeAttr("disabled"); 
}); 

Example on jsfiddle

1
$(document).ready(function(){ 
     if($('#tandcy').is(':checked')){ 
      $('#join').attr('disabled','disabled'); 
     } 
     if($('#tandcn').is(':checked')){ 
       $('#join').removeAttr('disabled','disabled'); 
     } 
     $('#tandcn').click(function(){ 
       $('#join').attr('disabled','disabled'); 
      }); 
     $('#tandcy').click(function(){ 
      $('#join').removeAttr('disabled','disabled'); 
     }) 
}); 

試試這個.... 你需要爲這個jQuery,....

+0

這就是它禁止一個小問題。即使我添加了禁用的標籤,當頁面加載時(默認選擇「我不同意」選項),該按鈕不會被禁用 – 2011-04-28 12:30:36

+0

@ferdia對不起,我錯過了==真正的聲明現在試試這個應該可以工作當它加載.... – Karthik 2011-04-28 12:32:02

+0

它仍然不會加載默認實際上,它會幫助,如果我遊戲的形式名稱標籤和指定的JavaScript內? – 2011-04-28 12:37:28

0
$("#tandcn #tandcy").livequery('change', function(event){ 

       if ($('#tandcn').is(":checked")) 
        { 
        $('#join').hide(); 
               //or 
             $('#join').attr("disabled", false); 
        } 
       else($('#tandcy').is(":checked")) 
            { 
        $('#join').show(); 
             //or 
            $('#join').attr("disabled", false); 
        } 
        }); 
+0

這會在第一個if語句Abdul上引發語法錯誤。有任何想法嗎? – 2011-04-28 12:38:46

+0

@Ferdia O'Brien,嘿,對不起,錯過了引號 – 2011-04-28 12:47:42

1

很多答案基於jQuery(我推薦使用)。這裏你的表單與JavaScript

<script type="text/javascript"> 
function disable(id){ 
document.getElementById(id).disabled = 'disabled'; 
} 
function enable(id){ 
document.getElementById(id).disabled = ''; 
} 
</script> 
<form action="join-head-2-head.php" method="POST" enctype="application/x-www-form-urlencoded"> 
    <table border="0" cellspacing="4" cellpadding="4"> 
     <tr> 
      <td colspan="2"><input name="player1rules" type="radio" id="tandcy" value="y" onclick='enable("join")' /> 
      <label for="tandcy">I Have Reviewed The Rules And The Terms & Conditions And Agree To Abide By Them</label></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input name="player1rules" onclick='disable("join")' type="radio" id="tandcn" value="n" checked="checked" /><label for="tandcn">I Do Not Agree To The Terms And Condtions And/Or Have Not Read The Rules</label></td> 
     </tr> 
     <tr> 
      <td width="100"><input name="player1" type="hidden" value="<? $session->username; ?>" /></td> 
      <td><input type="submit" DISABLED name="join" id="join" value="Take Available Slot" /></td> 
     </tr> 
    </table> 
</form> 

但更優雅的方式是使用jQuery。

+0

成功!如果Karthic或其他人破解它,我可能會換成jquery。這完美的作品:) – 2011-04-28 12:42:47