Javascript 通过单选按钮激活的引导数据切换下拉列表
我试图通过点击一个单选按钮打开一个引导下拉列表,但听起来很简单,这让我度过了痛苦的一天 根据Bootstrap,您可以使用超链接或按钮打开下拉列表,其中包含Javascript 通过单选按钮激活的引导数据切换下拉列表,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我试图通过点击一个单选按钮打开一个引导下拉列表,但听起来很简单,这让我度过了痛苦的一天 根据Bootstrap,您可以使用超链接或按钮打开下拉列表,其中包含data toggle=“dropdown”。您也可以使用$('.dropdown toggle').dropdown(),但触发器仍必须具有data toggle=“dropdown”才能工作 问题是,单选按钮不允许data toggle=“dropdown”,如果我将单选选项包装在其自己的超链接标记中并添加切换,则下拉菜单可以工作,但单选
data toggle=“dropdown”
。您也可以使用$('.dropdown toggle').dropdown()
,但触发器仍必须具有data toggle=“dropdown”
才能工作
问题是,单选按钮不允许data toggle=“dropdown”
,如果我将单选选项包装在其自己的超链接标记中并添加切换,则下拉菜单可以工作,但单选按钮本身不能工作,我需要两者同时工作。单选按钮将执行一个操作,同时显示一个下拉列表,以允许进行辅助操作
我简化了代码,给出了一个更简单的示例,并复制了我的问题。您可以在代码笔中看到,下拉菜单起作用,但单选按钮不显示“Hello”。如果删除
你好,个人
你好,生意
你好,罪犯
$(文档).ready(函数(){
$('#busDemo').hide();
$('#offDemo').hide();
$('#individualForm')。更改(函数(){
如果(选中此项){
$('#indDemo').show();
$('#busDemo').hide();
$('#offDemo').hide();
}
});
$('#businessForm')。更改(函数(){
如果(选中此项){
$('#busDemo').show();
$('#indDemo').hide();
$('#offDemo').hide();
}
});
$('#offerform')。更改(函数(){
如果(选中此项){
$('#offDemo').show();
$('#indDemo').hide();
$('#busDemo').hide();
}
});
});
看到密码笔了吗
谢谢 从锚内取出单选按钮,因为锚正在包围单选按钮,因此不会触发单选按钮更改事件。修改单选按钮更改处理程序,如下所示:
$('#offenderForm').change(function () {
if (this.checked) {
$('#offDemo').show();
$('#indDemo').hide();
$('#busDemo').hide();
$(this).siblings('a.dropdown-toggle').click();
}
});
编辑:将其添加到javascript代码中:
$('a.dropdown-toggle').click(function(){
$(this).siblings('input').click();
});
这样,当您单击锚定时,将触发单选按钮上的单击事件。同样,当您单击单选按钮时,将触发锚上的单击事件
函数HIDEALBUT(id){
$('#indDemo').hide();
$('#busDemo').hide();
$('#offDemo').hide();
$('.dropdown menu').hide()
if(id)$('#'+id).show();
}
$('#individualForm').change(function(){
Hidealbut(“indDemo”);
});
$('#businessForm').change(function(){
Hidealbut(“busDemo”);
});
$(“#执行”)。单击(函数(){
Hidealbut(“offDemo”);
$('.dropdown menu').dropdown().show();
});
$('.下拉菜单a')。单击(函数(){
$('#offDemoSub').html(this.innerHTML);
$('.dropdown menu').dropdown().hide();
});
Hidealbut(“indDemo”)代码>
。下拉菜单{
左:150px!重要;
顶部:60px!重要;
}
#offDemoSub{左填充:20px}
个人
生意
罪犯
你好,个人
你好,生意
你好,罪犯
如果输入字段位于锚内,则输入字段将永远不会收到更改事件。但您可以将事件委托给父div,并测试您正在单击的锚是否包含您正在查找的输入元素:
$(文档).ready(函数(){
$('#busDemo').hide();
$('#offDemo').hide();
$('#individualForm')。更改(函数(){
如果(选中此项){
$('#indDemo').show();
$('#busDemo').hide();
$('#offDemo').hide();
}
});
$('#businessForm')。更改(函数(){
如果(选中此项){
$('#busDemo').show();
$('#indDemo').hide();
$('#offDemo').hide();
}
});
//以不同的方式委派事件
$('div.radio-group.inline radio')。在('click','a',函数(e)上{
var offerform=document.getElementById('offerform');
如果(本文件包含(执行)){
offerform.checked=!offerform.checked;
如果(执行检查){
$('#offDemo').show();
$('#indDemo').hide();
$('#busDemo').hide();
}
}
});
});代码>
。下拉菜单{
左:200px;
顶部:60px;
}
个人
生意
你好,个人
你好,生意
你好,罪犯
向调用$('.dropdown toggle')的收音机添加更改或单击处理程序可能是一种解决方案。dropdown()函数尝试了这一点。没有雪茄。收音机输入类型中不允许存在数据切换下拉列表的依赖项。如果将收音机包装在一个div中并将数据切换添加到该容器中会怎么样?数据切换与超链接和/或按钮一起工作-根据
$('a.dropdown-toggle').click(function(){
$(this).siblings('input').click();
});