我正在编写一个获取某些搜索过程值的表单。我正在编写两个文本字段供用户在其中任何一个上输入。但是其中只有一个会一次启用。 。用户可以通过选中复选框来选择该选项。默认情况下,其中一个字段应该启用,当选中复选框时(最初启用的那个)被禁用而其他字段被启用,反之亦然,如果未选中该复选框。
这里is
小提琴:
答案 0 :(得分:1)
这将解决您的问题
HTML:
<input type="text" name="" />
<input type="checkbox" name="" />
<input type="text" name="" disabled="'disabled'"/>
JS:
$(':checkbox').change(function(){
if ($(this).is(':checked')) {
$(this).prev().attr('disabled','disabled');
$(this).next().removeAttr('disabled');
} else {
$(this).next().attr('disabled','disabled');
$(this).prev().removeAttr('disabled');
}
});
答案 1 :(得分:0)
本来可以做得更简单,但这只是一个暗示:
if($("#CheckBox").is(":checked"))
{
$("#Field1").attr("disabled","disabled");
$("#Field2").removeAttr("disabled");
}
else
{
$("#Field1").removeAttr("disabled");
$("#Field2").attr("disabled","disabled");
}
答案 2 :(得分:0)
简单逻辑:
(1)默认情况下禁用任何一个文本框。
(2)使用.prev()
或.next()
,检查是否有人被禁用。
(3)如果是这样,启用它并禁用其他反之亦然。
<强> HTML:强>
<input type="text" name="" disabled/> <!--By default it is disabled-->
<input type="checkbox" name="" />
<input type="text" name="" />
<强>使用Javascript:强>
$(':checkbox').change(function () {
if ($(this).prev().is(':disabled')) {
$(this).prev().removeAttr('disabled');
$(this).next().attr('disabled', 'disabled');
} else {
$(this).next().removeAttr('disabled');
$(this).prev().attr('disabled', 'disabled');
}
});
选中此JSFiddle