2016-12-06 174 views
0

我有4个radio buttons并使用自举3在HTML页面中textbox如何启用文本框,我想使默认情况下禁用的textbox并启用它时,单选按钮EnterRange是enabled.Any建议?当单选按钮的一个点击

<script type="text/javascript"> 
    $(".radioBtn").click(function() { 
    $("#dist").attr("disabled", true); 
     if ($("input[name=optradio]:checked").val() == "EnterRange") { 
      $("#txtbox").attr("disabled", false); 
     } 
    }); 
</script> 

的html代码:

<div class="customradio"> 
    <input class="radioBtn" type="radio" id="5" name="optradio" value="5" checked="checked"> 
    <label for="5">5 Km</label> 
</div> 
<div class="customradio"> 
    <input class="radioBtn" type="radio" id="10" name="optradio" value="10"> 
    <label for="10">10 Km</label> 
</div> 
<div class="customradio"> 
    <input class="radioBtn" type="radio" id="15" name="optradio" value="15"> 
    <label for="15">15 Km</label> 
</div> 
<div class="customradio"> 
    <input class="radioBtn" type="radio" id="EnterRange" name="optradio" value="EnterRange"> 
    <label for="EnterRange">Enter Range</label> 
</div> 
<div> 
    <input type="text" id="dist" name="txtbox" disabled="disabled"> <label>Km</label> 
</div> 
+1

预计尝试自己解决问题,然后发布一个问题,当您遇到与代码中的特定问题。请访问帮助中心,查看本网站的主题有哪些问题 – Pete

回答

0

你只有一个错误就是在这里

if ($("input[name=optradio]:checked").val() == "EnterRange") { 
$("#dist").attr("disabled", false); //selector is wrong. 
} 

你刚才把nameselector其实你的代码是完美的,你只需要将这个selector改为$("#txtbox")$("#dist")

$(".radioBtn").change(function() { 
    $("#dist").attr("disabled", true); 
    alert($("input[name=optradio]:checked").val()) 
     if ($("input[name=optradio]:checked").val() == "EnterRange") { 
      $("#dist").attr("disabled", false); 
     } 
    }); 
+0

我改变了它但它不工作:( –

+0

@Newdeveloper您可以在这里https://jsfiddle.net/mw1eLjak/ –

+0

非常感谢检查它...现在的工作......这是我的fault..i把JavaScript的在错误的地方。 –

0

只需通过jQuery的做到这一点。试试下面的代码片段:

HTML:

<div class="customradio"> 
    <input class="radioBtn" type="radio" id="EnterRange" name="optradio" value="EnterRange"> 
    <label for="EnterRange">Enter Range</label> 
</div> 
<div> 
    <input type="text" id="dist" name="txtbox"> <label>Km</label> 
</div> 

的jQuery 1.6+,您可以使用.prop()功能:

$(document).ready(function() { 
     $("#dist").prop('disabled', true); 
     $("#EnterRange").click(function() { 
      $("#dist").prop('disabled', false); 
     }); 
}); 

的jQuery 1.5及以下,该.attr.remoceAttr做同样的事情:

$(document).ready(function() { 
    $("#dist").attr("disabled","disabled"); 
    $("#EnterRange").click(function() { 
     $("#dist").removeAttr("disabled"); 
    }); 
}); 
+0

此解决方案有任何问题吗?所以让我知道你为什么推downvote按钮...! –

+0

不是我推送的投票按钮:)....关于您的回复,我希望它启用或禁用文本框不隐藏它。 –

+0

所以,你可以用'$( “#DIST”)ATTR( '禁用', '禁用');'而不是'$( “DIST).hide()'然后改变'$(” #DIST” ).show();''到$( “#DIST”)removeAttr( '禁用');'@Newdeveloper –

0

您的代码将正常工作,只是检查ID您使用

<script type="text/javascript"> 
    $(".radioBtn").click(function() { 
    $("#dist").attr("disabled", true); 
     if ($("input[name=optradio]:checked").val() == "EnterRange") { 
      $("#txtbox").attr("disabled", false); 
     } 
    }); 
</script> 

使用

<script type="text/javascript"> 
    $(".radioBtn").click(function() { 
    $("#dist").attr("disabled", true); 
     if ($("input[name=optradio]:checked").val() == "EnterRange") { 
      $("#dist").attr("disabled", false); 
     } 
    }); 
</script> 
+0

我改变它,但它不工作: ( –

+0

它工作正常,我https://jsfiddle.net/eg4ojgk0/2/ –

+0

非常感谢......现在的工作......这是我的fault..i把JavaScript的在错误的地点。 –