2013-07-01 68 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

相关问题