2011-04-28 4 views
0

я форма изложил так:Включить/Отключить кнопку Submit на основе радиокнопок

<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> 

То, что я надеюсь сделать это отключить кнопку отправки, если идентификатор = «tandcn» выбран, и включить это когда id = "tandcy". Есть ли простой способ сделать это с помощью javascript?

+0

вы используете JQuery? – Karthik

ответ

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? –

+0

jQuery полностью, THX для выбора моего ответа –

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

Thats it it bar - одна небольшая проблема. Даже если я добавлю отключенный тег, кнопка не будет отключена при загрузке страницы (по умолчанию выбраны опции «Я не согласен») –

+0

@ferdia извините, я пропустил == true в этом заявлении попробуйте это сейчас, он должен работать когда он загружается .... – Karthik

+0

Он по-прежнему не будет загружать по умолчанию на самом деле, поможет ли мне игра в форме тега имени и указана в javascript? –

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

Это вызывает синтаксическую ошибку в первом случае, если оператор Abdul. Есть идеи? –

+0

@Ferdia O'Brien, эй жаль пропущенные цитаты –

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

Успех! Я могу поменяться на jquery, если Картик или кто-то другой его взломат. Это отлично работает в любом случае :) –

Смежные вопросы