我通过输入在 div 中动态加载页面的功能来增加我的系统,换句话说,页面的中心区域被更新。为此,我正在使用 JQuery。但即使我遇到以下问题,当提交相同的表单时,必须通过 JQuery-Ajax 加载下一页以发送帖子以使用第二页上的数据。
有趣的是我没有得到选择。始终且仅在一种情况下提交()表单。我将在以下两种情况下发布HTML:
在下面的 html 代码中,我在 form.submit() 中创建的警告测试正在显示。
<form id="form" accept-charset="utf-8" name="frmPadrao" method="POST" action="HTTP://localhost/fwsibe/index.php/acesso/listarSistemasValidar">
<br>
<fieldset id="tabelainfo" style="width: 560px;">
<legend style="color: #083C06;">
<b>Dados</b>
</legend>
<br>
<table id="tabelainfo">
<tbody>
<tr>
<td>
<b>SIBE:* </b>
</td>
<td>
<select name="slSibe">
</td>
</tr>
<tr>
<td>
<br>
</td>
</tr>
<tr>
<td colspan="2">
<input class="button" type="submit" value="Confirmar" name="btConfirmar">
</td>
</tr>
</tbody>
</table>
</fieldset>
<br>
<br>
</form>
在第二个代码警告中。submit() 不显示,或者不识别提交表单:
<form id="form" accept-charset="utf-8" name="frmPadrao" method="POST" action="HTTP://localhost/sibe/index.php/almembal/motivoajustealm/pesquisar">
<br>
<fieldset id="tabelainfo" style="width: 560px;">
<legend style="color: #083C06;">
<b>Filtrar por:</b>
</legend>
<br>
<table id="tabelainfo">
<tbody>
<tr>
<td>
<b>SubTipo Produto:* </b>
</td>
<td>
<select name="slSubTipo">
</td>
</tr>
<tr>
<td>
<br>
</td>
</tr>
<tr>
<td colspan="2">
<input class="button" type="submit" value="Confirmar" name="btConfirmar">
</td>
</tr>
</tbody>
</table>
</fieldset>
<br>
<br>
<div>
<a title="" onclick="window.open('HTTP://localhost/sibe/index.php/almembal/motivoajustealm/incluir', '_blank', 'width=800,height=600,scrollbars=yes,status=yes,resizable=yes,screenx=0,screeny=0');" href="javascript:void(0);">Incluir</a>
</div>
<br>
<table id="tabelainfo">
<tbody>
<tr id="corpotabela">
<td align="center">Não existem Motivos de Ajuste cadastrados para esta pesquisa.</td>
</tr>
</tbody>
</table>
</form>
在页面的 HEAD 中已经正确初始化的 JQuery 脚本下方,另外,已经针对其他 enventos 进行了测试,如 $(this)。单击,一切正常。
$(document).ready(function() {
$("#form").submit(function() {
alert("SUBMIT FORM");
// alert($(this));
// console.log($(this));
// $.post($(this).attr("action"), $(this).serialize(), function(data) {
// $("#divCentral").html(data);
// });
// return false;
});
});
你能帮我找到导致的错误吗?提交() 不被JQuery 识别?
编辑:
我已经发现了问题的根源。看起来当为 jquery-ajax 加载的页面绘制组件时,事件 .submit() 不起作用,但是当页面默认加载时,事件起作用。
问题是由 Ajax 加载,而 JQuery 函数无法识别它。我正在创建通过 ajax 请求将模板的中心页面加载到文件的功能。我有两个功能,第一个仅用于测试,第二个我正在创建用于 $_POST 的工作。现在的 JQuery 函数很好:
function carregaUrl(url) {
//alert("carregaUrl=" + url);
$("#divCentral").load(url);
console.log($('form').attr('name'));
}
function carregaUrl2(url) {
var data = $("form").serialize();
$.ajax({
type: "POST",
url: url,
data: data
}).done(function(data) {
$("#divCentral").html(data);
});
}