javascript - 如果选择单选按钮禁用文本区域?

标签 javascript jquery radio-button

我有一个表单,我想在其中“变灰”文本区域,直到选择“否”单选按钮。

@Html.RadioButtonFor(p => Model.Questions[i].AnswerSelected, true, new { id="radio1" }) Yes
@Html.RadioButtonFor(p => Model.Questions[i].AnswerSelected, false, new { id="radio2" }) No
@Html.TextAreaFor(p => Model.Questions[i].ActionToTake, new { id="textArea" })

解决这个问题的好方法是什么?我对 javascript 还很陌生,最好能有一些额外的文字来解释你在做什么。

最佳答案

编辑2: $("input[name='group1']").change 监听名为“group1”的 radio 组中的更改。当它触发时,您检查更改发生的位置(“$(this).val() == 'no'”意味着更改是在第二个值为“no”的单选按钮中触发的),然后您执行您的操作逻辑。

编辑(更好):

$("input[name='group1']").change(function(e){
    if($(this).val() == 'no') {
        $("#text1").prop('readonly', true); 
        $("#text1").css('background-color', '#EBEBE4');
    } else if($(this).val() == 'yes') {
        $("#text1").prop('readonly', false);
        $("#text1").css('background-color', '#FFFFFF');
    }
});

@Html.RadioButtonFor(p => Model.Questions[i].AnswerSelected, true, new { id="radio1", name="group1", value="yes" }) Yes
@Html.RadioButtonFor(p => Model.Questions[i].AnswerSelected, false, new { id="radio2", name="group1", value="no" }) No

https://jsfiddle.net/vaxc3eo5/3/

原创:

使用 JQuery:

使用 readonly 并添加背景颜色以具有与禁用相同的外观。

$("#radio2").change(function(){
    $("#text1").prop('readonly', true); 
    $("#text1").css('background-color', '#EBEBE4');
});
$("#radio1").change(function(){
    $("#text1").prop('readonly', false);
    $("#text1").css('background-color', '#FFFFFF');
});

https://jsfiddle.net/vaxc3eo5/2/

关于javascript - 如果选择单选按钮禁用文本区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694507/

相关文章:

javascript - 从 API 获取数据并显示为名称和网站链接

javascript - React - 带有对象的语义 ui 下拉列表

vue.js - Vue v-model 对 BS4 单选按钮组没有反应

java - 如何根据选择的单选按钮打开特定 Activity ?

javascript - 根据多个单选按钮选择显示或隐藏元素

javascript - 使用 switch 语句在 javascript 中更改时间时显示不同的消息

javascript - onload是否等于XMLHttpRequest中的readyState==4?

jQuery 选项 :contains

javascript - 如何在 ajax 调用中隐藏所有内容并禁用所有其他 jQuery 函数

jquery - 叠加菜单 (jQuery/CSS)