Javascript 如何在点击按钮时打开下拉列表?
我的html页面上有一个下拉列表,该页面上有一个按钮。 现在我想做一些类似的事情,当用户点击按钮,然后下拉菜单将打开 按钮:-Javascript 如何在点击按钮时打开下拉列表?,javascript,jquery,html,ruby-on-rails-3,ruby-on-rails-4,Javascript,Jquery,Html,Ruby On Rails 3,Ruby On Rails 4,我的html页面上有一个下拉列表,该页面上有一个按钮。 现在我想做一些类似的事情,当用户点击按钮,然后下拉菜单将打开 按钮:- <a href="javascript:void(0);" id="84" class="add_award_ready"><i class="fa fa-plus"></i></a> 但这只会工作一次。若我再次点击按钮,那个么下拉列表不会打开。 出什么事了 提前感谢。将按钮和下拉列表放在两个不同的div标签内,如下面
<a href="javascript:void(0);" id="84" class="add_award_ready"><i class="fa fa-plus"></i></a>
但这只会工作一次。若我再次点击按钮,那个么下拉列表不会打开。
出什么事了
提前感谢。将按钮和下拉列表放在两个不同的div标签内,如下面提供的ID
<div style="text-align: right;float:right;margin: 0;">
<a id="OpenDialog" href="javascript:void(0)" onclick="aopen()" > <i class="fa fa-plus"></i> Add Policy</a>
</div>
<script>
function aopen()
{
$("#dialog").dialog({modal: true, height: 500, width: 800 });
}
function close_popup()
{
//alert('HEllo');
$("#dialog").dialog('close');
}
</script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<div id="dialog" title="Add Policy" style="display: none;" >
<div class="box box-primary" >
<!-- form start -->
<form role="form" action="<?php echo site_url('policy/submit_data');?>" method="post">
<div class="box-body">
<div class="form-group">
<label for="exampleInputEmail1">Category Name</label>
<select class="form-control" name="category">
<option value=""> -- Category --</option>
<?php foreach($category as $value) {?>
<option value="<?php echo $value->cate_name; ?>"><?php echo $value->cate_name; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Sub Category</label>
<select class="form-control" name="sub_category">
<option value=""> -- SUB category --</option>
<?php foreach($sub_cate as $value) {?>
<option value="<?php echo $value->cate_id; ?>"><?php echo $value->sub_cate; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Description</label>
<div class='box-body pad'>
<textarea class="textarea" id="desc" name="description" placeholder="Place some text here" style="width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</div>
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" onclick="return close_popup();" class="btn btn-primary">Cancel</button>
</div>
</form>
</div>
</div>
这是我的工作
setTimeout(function(){
var element = $('#add_award_form_' + student_id + ' select')[0], worked = false;
if (document.createEvent) {
var e = document.createEvent("MouseEvents");
e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
worked = element.dispatchEvent(e);
}
},100);
我使用timeout是因为当我再次点击按钮时,mousedown事件将不会触发,因为它有两个事件,所以我延迟了一个事件。它完全按照我的要求工作。我想你可以检查一下,这对我不起作用@你能发布你的下拉列表和按钮代码吗?谢谢你的回答,但我说的是下拉列表,你提到了对话框。删除所有字段并在HTML上保存选择标记。这是一段html代码。只需单击按钮,即可调用id=dialog。谢谢。但我不是说切换div,它不适用于@Pavan@sank你能用下拉代码和按钮代码更新你的帖子吗?你上面的答案显示和隐藏下拉列表,但这不是我的问题。我想这正是,但这将只工作后,页面刷新一次。但我想在点击按钮时看到这个。如果我点击按钮,并且下拉列表可见,那么它将隐藏,如果它是隐藏的,那么点击它会显示下拉列表,但默认情况下它会打开,我不想再点击下拉列表从下拉列表中选择选项。请帮帮我。
<div style="text-align: right;float:right;margin: 0;">
<a id="OpenDialog" href="javascript:void(0)" onclick="aopen()" > <i class="fa fa-plus"></i> Add Policy</a>
</div>
<script>
function aopen()
{
$("#dialog").dialog({modal: true, height: 500, width: 800 });
}
function close_popup()
{
//alert('HEllo');
$("#dialog").dialog('close');
}
</script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<div id="dialog" title="Add Policy" style="display: none;" >
<div class="box box-primary" >
<!-- form start -->
<form role="form" action="<?php echo site_url('policy/submit_data');?>" method="post">
<div class="box-body">
<div class="form-group">
<label for="exampleInputEmail1">Category Name</label>
<select class="form-control" name="category">
<option value=""> -- Category --</option>
<?php foreach($category as $value) {?>
<option value="<?php echo $value->cate_name; ?>"><?php echo $value->cate_name; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Sub Category</label>
<select class="form-control" name="sub_category">
<option value=""> -- SUB category --</option>
<?php foreach($sub_cate as $value) {?>
<option value="<?php echo $value->cate_id; ?>"><?php echo $value->sub_cate; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Description</label>
<div class='box-body pad'>
<textarea class="textarea" id="desc" name="description" placeholder="Place some text here" style="width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</div>
</div>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" onclick="return close_popup();" class="btn btn-primary">Cancel</button>
</div>
</form>
</div>
</div>
<div id="myButton">
<a href="javascript:void(0);" id="84" class="add_award_ready"><i class="fa fa-plus"></i></a>
</div>
<div id="mySelect">
<select id="instructor_student_award_id" name="instructor_student_award[id]">
<option value="">Select</option>
<option value="21">ss1</option>
<option value="25">E++</option>
<option value="26">F++</option>
<option value="27">t1</option>
</select>
</div>
$("#mySelect").hide();
$("#myButton").click(function(e){
$("#mySelect").toggle('slow');//or just show instead of toggle
});
setTimeout(function(){
var element = $('#add_award_form_' + student_id + ' select')[0], worked = false;
if (document.createEvent) {
var e = document.createEvent("MouseEvents");
e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
worked = element.dispatchEvent(e);
}
},100);