我正在为Ruby on Rails 3.0
使用Bootstrap 4.2.5
,因此我需要这样做,以便当用户从下拉菜单中选择选项“否”时,以这种形式显示下一个文本字段,否则文本字段保持隐藏状态。我已经找到了与此解决方案类似的问题,但是我无法使用Bootstrap表单来实现它,这是我的尝试:
下拉输入:
<%= f.select :answer, [["Yes", 1], ["No", 0]], label: "Do you wish to bla bla? ", class: "selectpicker", Id: "selectpicker" %>
切换输入(选择“否”时应显示):
<%= f.text_area :explain , label: "Please explain why not", Id: "sdd"%>
Javascript:
("selectpicker").change(function changetextbox());
function changetextbox()
{
if (document.getElementById("selectpicker").value === 0 ) {
document.getElementById("sdd").disable='true';
} else {
document.getElementById("sdd").disable='false';
}
}
`
我尝试将
value === 0
更改为value == 0
,将0
更改为No
,但是仍然不起作用。它们按此顺序出现在我的代码中,但是我不确定如何将其与bootstrap表单标记一起使用。提前致谢。
参考:这是我从中获得此代码的问题
Enable/disable of textbox on option selected from drop down menu
最佳答案
$(document).on('change', '#selectpicker', changetextbox);
function changetextbox() {
if (document.getElementById("selectpicker").value === '0') {
document.getElementById("sdd").disabled = true;
} else {
document.getElementById("sdd").disabled = false;
}
}
您忘记了
$
,并且没有selectpicker
选择器,使用jQuery时必须使用.selectpicker
或#selectpicker
之类的类或ID(取决于HTML)。没有
disable
,必须使用disabled
,并且不能对true
和false
使用引号。您不能使用
.change(function changetextbox())
,而只能使用$(document).on('change', '#selectpicker', changetextbox)
。0
必须用引号引起来。我假设您的textarea仅被禁用(未被CSS隐藏)。
CODEPEN EXAMPLE
关于javascript - 从Bootstrap 3.0的下拉菜单中选择时切换元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38097455/