2016-08-21 59 views
0

我有2個選項:#home-none#home-select,當選擇#home-none時,我希望我的所有輸入的類.home都被禁用。當選擇選項時,JQuery禁用輸入

HTML:

選項

<select class="form-control"> 
    <option id="home-none">-</option> 
    <option id="home-select">Team</option> 
</select> 

輸入

<div class="form-group"> 
    <input class="form-control home" name="h-p1-fn" placeholder="First name" type="text"/> 
</div> 
<div class="form-group"> 
    <input class="form-control home" name="h-p1-ln" placeholder="Last name" type="text"/> 
</div> 

JS:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#home-select").click(function(){ 
      $(".home").prop('disabled',true); 
     }); 
     $("#home-none").click(function(){ 
      $(".home").prop('disabled',true); 
     }); 
    }); 
</script> 

控制檯不顯示錯誤,但它不工作。

回答

3

你對錯誤的事件很迷惑。改爲使用selectchange事件。從那裏您可以讀取option元素的value屬性,將相關的input元素設置爲禁用。試試這個:

$(document).ready(function(){ 
 
    $("select.form-control").change(function(){ 
 
    $(".home").prop('disabled', $(this).val() == 'home-none'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="form-control"> 
 
    <option value="home-none">-</option> 
 
    <option value="home-select">Team</option> 
 
</select> 
 

 
<div class="form-group"> 
 
    <input class="form-control home" name="h-p1-fn" placeholder="First name" type="text"/> 
 
</div> 
 
<div class="form-group"> 
 
    <input class="form-control home" name="h-p1-ln" placeholder="Last name" type="text"/> 
 
</div>

+0

'$(本).VAL()== '家庭none''應該是'$(本).VAL()==' 家庭select''。當選擇團隊時,輸入被禁用 –

+0

嗯,這就是你的代碼當前嘗試的內容,但是你的問題是:'when#home-none is selected我希望我的所有輸入都帶有.home的類別被禁用。這很混亂。無論哪種方式,你只需要在相等性檢查 –

+0

中設置適當的值,對不起,語法錯誤。你正確回答了這個問題 –

2

這將在選項

  • 工作,而不是ID更好

    1. 使用價值使用更改事件
    2. 負載執行變更事件在重新加載時處理更改的選擇

    行這樣的:

    <select class="form-control"> 
        <option value="home-none">-</option> 
        <option value="home-select">Team</option> 
    </select> 
    
    $(function() { 
        $("select.form-control").on("change",function() { 
        $(".home").prop('disabled',this.value=="home-none"); 
        }).change(); // execute on load 
    });