2013-07-01 66 views
-2

我想使文本框只讀或不取決於個人貸款複選框的值。如果personalLoan複選框被選中,我希望文本不是隻讀的。如果未選中,我希望文本框是隻讀的。這裏是行檢查是否在td中使用jquery檢查了特定的複選框

<tr id="mytableRows"> 
    <td class="even"><input type="checkbox" value="true" name="homeLoan" ></td> 
    <td class="odd"><input type="checkbox" value="true" name="autoLoan" ></td> 
    <td class="even"><input type="checkbox" value="true" name="personalLoan" ></td> 
    <td class="odd"><input type="checkbox" value="true" name="noLoan" ></td> 
    <td class="odd"><input type="text" name="peronalAmount" value="1" readonly></td> 
</tr> 

我到目前爲止有這個代碼

$(document).ready(function(){ 
    $('.test tr').click(function (event) { 
     $(this).find(':checkbox').each(function(p){ 
      if($(this).attr('name') == 'personalLoan'){ 
       if ($(this).is(':checked')) { 
        alert("checked"); 
       }else{ 
        alert("unchecked"); 
       } 
      } 
     }); 
    }); 
}); 

這告訴我複選框的當前狀態,但我真正需要的是知道平變化的personalLoan複選框,所以我的一個可以使文本框只讀或沒有該行(TD)

感謝

+0

[Make field readonly - checkbox - jQuery]可能的重複(http://stackoverflow.com/questions/7419383/make-field-readonly-checkbox-jquery) – Mathletics

+1

[或其他類似帖子](http: //stackoverflow.com/search?q=make+checkbox+readonly) – Mathletics

+1

這個問題「非常不同」的方式是什麼? *如果*不同,請不要簡單地告訴我們仔細閱讀,*解釋*差異。我們不是試圖用報復的方式來回避你的問題,但我們可能會誤解或簡單地忽略差異。順便說一句,我懷疑你的文本輸入名稱可能有拼寫錯誤,「peronalLoan」應該是我個人認爲的「personalLoan」嗎? –

回答

1

爲了我自己的理智,這裏是我所理解的解決方案。

$('input[type=checkbox]', '.test').on('change', function(e) { 
    if (this.name === 'personalLoan') { 
     $(this).parents('tr').find('input[type=text]').prop('readonly', !this.checked); 
    } 
}); 

假設與test類的表中,這允許輸入時personalLoan被選中,並切換選中時爲只讀。

Demo on jsFiddle。 (我用紅色突出顯示了這個複選框。)

如果不是這樣,那我真的不知道你在做什麼。

+0

我想出了幾乎相同的解決方案。但你的優雅。我將使用你的 – Autolycus

+0

我只想指出,這與我之前鏈接的問題完全相同。 – Mathletics

1

在我看來,你真正想要的單選按鈕,複選框沒有,而且量FIEL如果用戶選擇「不貸款」,應將d設置爲禁用而不是隻讀。

無論如何,這裏有一個你可以採取的方法。爲了方便起見,我把代碼放在內聯中,它可以用jQuery或任何你想要的來重新實現,這只是一個如何做你似乎正在嘗試做的事情的例子。

使用超時,以便單擊事件可用於表單中的任何元素,包括重置按鈕。

<form onclick=" 
    var form = this; 
    setTimeout(function() { 
    form.personalAmount.readOnly = form.loanType[3].checked; 
    },0); 
"> 
<table> 
    <tr> 
    <td><input type="radio" value="homeLoan" name="loanType">Home</td> 
    <td><input type="radio" value="autoLoan" name="loanType">Auto</td> 
    <td><input type="radio" value="personalLoan" name="loanType">Personal</td> 
    <td><input type="radio" value="true" name="loanType">None</td> 
    <td><input type="text" name="personalAmount" readonly></td> 
    <tr> 
    <td colspan="4"> 
     <input type="reset"> 
</table> 
</form> 
+0

感謝您的回答RobG。然而,我能夠用複選框對其進行編碼。我會在這裏添加我的答案來幫助社區。 – Autolycus

相關問題