我正在使用Bootstrap 3.0
用于Ruby on Rails 4.2.5
,我需要这样做,以便在用户选择选项" No"从下拉菜单中,向他们显示下一个文本字段,否则,文本字段将保持隐藏状态。我已经在这个解决方案中找到了类似的问题,但我无法使用Bootstrap表单实现它,这是我的尝试:
下拉输入:
<%= f.select :answer, [["Yes", 1], ["No", 0]], label: "Do you wish to bla bla? ", class: "selectpicker", Id: "selectpicker" %>
切换输入(应显示&#34;否&#34;被选中):
<%= 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
答案 0 :(得分:0)
$(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(取决于您的HTML)时,您必须使用类.selectpicker
或#selectpicker
等类或ID disable
,您必须使用disabled
而且您不能使用true
和false
的引号。.change(function changetextbox())
,只需使用$(document).on('change', '#selectpicker', changetextbox)
。0
必须使用引号。答案 1 :(得分:0)
您需要更新代码,
<强> HTML 强>
<select id="selectbox" name="mfi_4_a_i">
<option value="1">Yes</option>
<option value="0">No</option>
</select>
<input type="text" name="mfi_4_a_ii" id="sdd" />
<强> JS 强>
$("#selectbox").change(function() {
changetextbox();
});
function changetextbox(){
if (document.getElementById("selectbox").value === '0') {
document.getElementById("sdd").disabled = true;
} else {
document.getElementById("sdd").disabled = false;
}
}
请参阅示例:https://jsfiddle.net/8mag64es/6/
如果您想要更清晰的jquery方式,您可以更新 JS 代码,如下所示
var selectbox = $("#selectbox"),
textbox = $("#sdd");
selectbox.change(function() {
changetextbox();
});
function changetextbox(){
if (selectbox.val() === '0') {
textbox.prop('disabled', true);
} else {
textbox.prop('disabled', false);
}
}
答案 2 :(得分:0)
尝试:
$(function(){
var $sdd = $('#sdd');
$('#selectbox').on('change', function(){
if($(this).val()==='0'){
$sdd.prop("disabled", false);
}else{
$sdd.prop("disabled", true);
}
})
});
<强> JS 强>
List<Object>