我有一个正常工作的Bootstrap模式,由一个按钮触发:
<button type="button" class="btn btn-info mm" data-toggle="modal" data-target="#mm_modal" data-req="foo">
此模式适用于表单中的某些数据。如果表单数据验证失败,我想显示警报并且根本不显示模态。我该怎么做?
我尝试过添加功能:
$('button.mm').click( function(ev)
{
var req = $(ev.currentTarget).data('req');
if ( req === 'foo' )
{
alert('Foo not supported');
throw new Error('Foo not supported');
}
}
警报正确显示但throw
似乎没有中止执行;无论如何,Bootstrap模态继续显示。
答案 0 :(得分:1)
解决方案(经过测试和运作):
使用ev.stopPropagation();
代替throw new Error('Foo not supported');
,模式不会显示。
注意使用ev.preventDefault();
不会停止显示模式。
stopPropagation
和preventDefault
之间的差异:here
希望有所帮助。