如果选择了下拉菜单中具有相同名称的项目,我希望激活名为{strong> other 的<input>
。否则,它将被停用。
<div class="dropdown">
Choisir le type:
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">Type</a>
<input type="hidden" id="selectedFormation" name="selectedFormation" />
<ul class="dropdown-menu">
<li><a href="#" data-value="item1">item1</a></li>
<li><a href="#" data-value="item2">item2</a></li>
<li><a href="#" data-value="other">other</a></li>
</ul>
</div>
<input type="text" class="form-control" name="other" id="other">
$(".dropdown-menu li a").click(function() {
$(this)
.closest(".dropdown")
.find(".btn")
.html($(this).text() + ' <span class="caret"></span>');
var value2 = $(this).data("value");
$("#selectedFormation").val(value2);
});
答案 0 :(得分:1)
您可以根据 value 将disabled属性设置为true / false。您可以将disabled属性添加到输入中,因为下拉列表没有在页面加载时选择 other 值。
$(".dropdown-menu li a").click(function(){
$(this).closest('.dropdown').find('.btn').html($(this).text()+' <span class="caret"></span>');
var value2=$(this).data("value");
$('#selectedFormation').val(value2);
if(value2 == 'other')
$('#other').attr('disabled', false);
else
$('#other').attr('disabled', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown"> Choisir le type :
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">Type</a>
<input type="hidden" id="selectedFormation" name="selectedFormation"/>
<ul class="dropdown-menu">
<li><a href="#" data-value="item1">item1</a></li>
<li><a href="#" data-value="item2">item2</a></li>
<li><a href="#" data-value="other">other </a></li>
</ul>
</div>
<input type="text" class="form-control" name="other" id="other" disabled>
答案 1 :(得分:1)
在输入中添加disabled
属性。现在,点击锚标记,获取值,如果是other
,请启用或禁用它
$(".dropdown-menu li a").click(function() {
$(this).closest('.dropdown').find('.btn').html($(this).text() + ' <span class="caret"></span>');
var value2 = $(this).data("value");
$('#selectedFormation').val(value2);
// added code here
if (value2 === 'other') {
$('#other').prop('disabled', false)
} else {
$('#other').prop('disabled', true)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown"> Choisir le type :
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">Type</a>
<input type="hidden" id="selectedFormation" name="selectedFormation" />
<ul class="dropdown-menu">
<li><a href="#" data-value="item1">item1</a></li>
<li><a href="#" data-value="item2">item2</a></li>
<li><a href="#" data-value="other">other </a></li>
</ul>
</div>
<input type="text" disabled class="form-control" name="other" id="other">
答案 2 :(得分:1)
最好的选择是将其更改为select
形式的元素,因为它具有内置的onchange事件。因为您将其作为ul
,所以您必须通过基于悬浮体添加类来重新创建它,这将需要更多的JS。在此页面上查看onchange的代码片段:
https://www.w3schools.com/jsref/event_onchange.asp
在此处修改其代码以类似于您的情况:
<select id="mySelect" onchange="myFunction()">
<option value="item1">Item 1
<option value="item2">Item 2
<option value="other">Other
</select>
<p id="demo"></p>
<script>
function myFunction() {
var x = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "You selected: " + x;
if (x === "other") {
// enable form field code
}
}
</script>