在我的laravel应用程序中,我在表单中有一个带有三个选项的下拉菜单。
我通过控制器通过DB加载表单选项。
{{ Form::select('roles', $roles , $userRole,array('class' => 'form-control txt_txt','id'=>'chgRole')) }}
它会渲染如下内容,
<select class="form-control txt_txt" id="chgRole" name="roles">
<option value="Admin">Admin</option>
<option value="Regional Admin">Regional Admin</option>
<option value="User" selected="selected">User</option>
</select>
现在我想在用户从下拉菜单中选择'Admin'
选项时显示一个带有消息的模态。
这是我到目前为止所做的…
<script>
jQuery("#chgRole").on("change", function() {
var sOptionVal = jQuery(this).val();
if (/modal/i.test(sOptionVal)) {
var $selectedOption = jQuery(sOptionVal);
$selectedOption.modal('show');
}
});
</script>
<div id="Admin" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Role is changing to Admin</h4>
</div>
<div class="modal-body info">
<p>Message
</p>
</div>
<div class="modal-footer addHEIGHT">
</div>
</div>
</div>
</div>
但是它没有打开模态或者甚至没有在控制台中显示任何错误…
正如Hassan在评论中提到的,你需要传递#来获取ID
由于您正在从数据库中加载选项值,我建议执行以下操作:
模态
<div id="Admin" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Role is changing to Admin</h4>
</div>
<div class="modal-body info">
<p>Message
</p>
</div>
<div class="modal-footer addHEIGHT">
</div>
</div>
</div>
</div>
然后把JQuery改成这个
<script>
$("#chgRole").on("change", function() {
var sOptionVal =$(this).val();
if(sOptionVal=='Admin'){
$( '#Admin' ).modal('show');
}
});
</script>
一定要包括
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>