2012-11-25 64 views
4

如果選擇單選按鈕,如何禁用選擇表單下拉菜單?如果選中收音機,請禁用選擇表單

如果用戶選擇#no單選按鈕,並且在用戶選擇#yes或#maybe時再次啓用它,我希望#preference表單被禁用。

這是我的表單代碼 -

<form name="xmas" id="xmas" action="send_mail.php" method="post"> 
      <input type="radio" name="choice" value="Yes" id="yes"/><label for="yes">Yes - I would like to take up the offer</label> 
      <input type="radio" name="choice" value="No" id="no"/><label for="no">No - I'm not ready to order yet</label> 
      <input type="radio" name="choice" value="Maybe" id="maybe"/><label for="maybe">Maybe - I'm not sure, would you please give me a call</label><br /> 
      <div class="secondlineform"> 
       <input type="text" name="name" class="textfield" value="Name" onfocus="if(this.value=this.defaultValue){this.value=''}; return false;"/> 
       <input type="text" name="email" class="textfield" value="Email" onfocus="if(this.value=this.defaultValue){this.value=''}; return false;"/> 
       <input type="text" name="company" class="textfield" value="Company" onfocus="if(this.value=this.defaultValue){this.value=''}; return false;"/> 
       <select class="dropselect" name="preference" label="Preference" id="preference"> 
        <option selected="selected" disabled="disabled" value="Preference">Preference</option> 
        <option value="Alcohol Package">Alcohol Package</option> 
        <option value="Gift Card Package">Gift Card Package</option> 
       </select> 
       <input type="submit" value="" name="submit" id="submit" class="submit"/> 

      </div> 
     </form> 

這是我的腳本代碼 -

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 


var update_select = function() { 
    if ($('#no').is(':checked')) { 
    $('#preference').attr('disabled', "disabled"); 
} 
else { 
    $("#preference").removeAttr("disabled"); 
} 

}; 

$(update_select); 
$('#no').change(update_select); 

</script> 

非常感謝任何答案!我一直在研究這個問題,我發現所有解決方案似乎都不能解決我的問題。

+0

不能看到那裏的錯誤......用'$( '#偏好')嘗試託( '已禁用',真)'然後'('disabled',false)' – elclanrs

+0

對不起,但爲什麼你需要這樣做'$(update_select);'? update_select是一個函數,對吧? – djakapm

+0

噢,實際上有些東西......爲什麼' '$(update_select)'那應該做什麼?你的意思是'update_select()'? – elclanrs

回答

2

要添加更改事件只No收音機,將其更改爲:

$("input[name='choice']").change(update_select); 

演示:: jsFiddle

+0

我試過這個論壇上的所有答案,不幸的是他們都沒有爲我工作。我不太瞭解腳本......有什麼我失蹤了嗎? <腳本類型= 「文本/ JavaScript的」> 變種update_select = function(){ if($(「#no」)。(':checked')){ $(「#preference」)。attr('disabled',「disabled」); } else { \t \t $(「#preference」)。removeAttr(「disabled」); } \t }; \t \t $(「input [name ='choice']」)。更改(update_select); – user1850722

+0

您是否在控制檯中看到任何錯誤...?你看到jsfiddle中的演示鏈接..? –

+0

在控制檯沒有錯誤,是的,我看到了演示鏈接。我的代碼與您的代碼完全相同,但似乎完全不適合我。我非常感謝你的幫助。感謝您的回覆如此之快,我會繼續努力。一定有一些我很想念的東西。也許我沒有正確引用jquery庫。不管怎麼說,還是要謝謝你! – user1850722

0

您需要的update_select功能應用到單選按鈕的休息,這樣

var update_select = function() { 
$('#preference').attr('disabled', $('#no').is(':checked')); 
}; 


$('#no').change(update_select); 
$('#yes').change(update_select); 
$('#maybe').change(update_select); 

這裏是小提琴:http://jsfiddle.net/QXkhM/

2
$('input[type=radio]').change(update_select);​ 
0

將你的單選按鈕列表換成ul並給它一個ID。

例如:

 <ul id="offer"> 
     <input type="radio" name="choice" value="Yes" id="yes"/><label for="yes">Yes - I would like to take up the offer</label> 
     <input type="radio" name="choice" value="No" id="no"/><label for="no">No - I'm not ready to order yet</label> 
     <input type="radio" name="choice" value="Maybe" id="maybe"/><label for="maybe">Maybe - I'm not sure, would you please give me a cal 
     l</label><br /> 
     </ul> 

var update_select = function() { 
    if ($('#no').is(':checked')) { 
     $('#preference').attr('disabled', "disabled"); 
    } 
    else { 
     $("#preference").removeAttr("disabled"); 
    } 
}; 
$(update_select); 
$('#offer').change(update_select); 

,也將努力

相關問題