Javascript 如何避免Twitter引导模式组件中的输入键行为
我有一个Twitter引导模式的HTML:Javascript 如何避免Twitter引导模式组件中的输入键行为,javascript,jquery,html,twitter-bootstrap,twitter,Javascript,Jquery,Html,Twitter Bootstrap,Twitter,我有一个Twitter引导模式的HTML: <div class="modal fade " id="addNorma" tabindex="-1" role="dialog" aria-labelledby="addNorma" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div
<div class="modal fade " id="addNorma" tabindex="-1" role="dialog" aria-labelledby="addNorma" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">{{ 'boton.cerrar'|trans({}, 'AppBundle') }}</span></button>
<h4 class="modal-title" id="myModalLabel">{{ 'modal.normas.titulo'|trans({}, 'AppBundle') }}</h4>
</div>
<div class="modal-body">
<form id="buscadorNorma" method="POST">
...
<div class="row">
<div class="col-md-12">
<button type="button" class="btn btn-default pull-right" disabled="disabled" id="btnBuscarNorma"><i class="fa fa-binoculars"></i> {{ 'boton.buscar'|trans({}, 'AppBundle') }}</button>
</div>
</div>
</form>
<table class="table table-hover table-condensed" id="resultadoNorma" style="display: none">
<thead>
<tr>
<th><input type="checkbox" id="toggleCheckboxNormaModal" name="toggleCheckboxNormaModal" /></th>
<th>{{ 'columnas.normas.no'|trans({}, 'AppBundle') }}</th>
<th>{{ 'columnas.normas.norma'|trans({}, 'AppBundle') }}</th>
<th>{{ 'columnas.normas.anno'|trans({}, 'AppBundle') }}</th>
<th>{{ 'columnas.normas.comite'|trans({}, 'AppBundle') }}</th>
</tr>
</thead>
<tbody id="resultadoNormaBody"></tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">{{ 'boton.regresar'|trans({}, 'AppBundle') }}</button>
<button type="submit" class="btn btn-primary" id="btnAplicarNorma" disabled><i class="fa fa-save"></i> {{ 'boton.aplicar'|trans({}, 'AppBundle') }}</button>
</div>
</div>
</div>
</div>
这一个用于处理#btnAplicarNorma
按钮:
$('#btnAplicarNorma').on('click', function (ev) {
var $tr_to_append = $('#resultadoNormaBody').find('tr.copyMe'),
has_tr = $("#normaBody").find('tr');
$('#tablaNorma').removeClass('hidden');
$('#alertSinNorma').addClass('hidden');
$('#toggleCheckboxNormaModal').prop('checked', false);
if ($tr_to_append.length) {
$tr_to_append.find('input[type=checkbox]').prop('checked', false);
$tr_to_append.removeClass('copyMe');
$(this).prop('disabled', true);
var clonedRows = $("#normaBody").find("tr");
$.each($tr_to_append, function (i, v) {
var added = false;
var currentRowHtml = $(v).html();
$.each(clonedRows, function (i, cRow) {
var clonedRowHtml = $(cRow).html();
if (currentRowHtml == clonedRowHtml) {
added = true;
}
});
if (!added) {
$(v).clone().appendTo('#normaBody').removeClass('copyMe');
}
});
}
$("#btnGuardarPasoTresAgregarProducto").prop('disabled', false);
$('#addNorma').modal('hide');
if ($('#toggleCheckboxNormaModal').is(":checked")) {
$('#toggleCheckboxNormaModal').prop("checked", false);
}
});
我遇到的问题是,每当我按下
enter
键时,模式就会关闭,我会被重定向到某个URL,为什么?为什么我要处理这个问题?有什么办法可以避免这种行为吗?将modal的background值设置为static
<div class="modal fade " id="addNorma" tabindex="-1" data-backdrop="static" data-keyboard="false" role="dialog" aria-labelledby="addNorma" aria-hidden="true">
我希望这将有助于……您可以使用以下方法抑制似乎要提交的表单上的提交事件:
$(document).on('submit','#buscadorNorma', function(e){
e.preventDefault();
});
听起来好像表单正在提交,这将导致重定向。显示您的表单提交代码。实际上,我不明白它为什么要提交,因为表单中显示的唯一按钮是type=按钮。@charlietfl我添加了两个处理按钮的代码
单击操作,但没有一个提交表单,错误在哪里?真的不确定。可以尝试将表单本身的提交处理程序添加到preventdefault()中,或者如果您没有真正将表单用作表单,则甚至没有表单。对我来说真的有点神秘,除非你们在控制台中抛出了错误also@charlietfl是否为表单添加处理程序?怎么用?你能给我看一些代码吗?没有,控制台$(文档)中没有错误代码>不,对相同的行为没有帮助,但我认为表单已提交,但如果您不想提交表单,我无法找到停止btnAplicarNorma的itset type=“button”的方法,也无法使用JSFIDLE或其他方法复制此问题。。
$(document).on('submit','#buscadorNorma', function(e){
e.preventDefault();
});