我 的 UI 包含 一 个 组合 框 , 显示 一 种 表单 类型 。 然后 使用 ajax 提交 表单 。 回调 再次 显示 整个 表单 和 其他 信息 。 问题 是 第 一 次 提交 工作 , 但 第 二 次 提交 没有 考虑 表单 字段 中 所 做 的 更改 。
- 在 列表 中 选择 Form1
- Form1 显示 为 空 字段
- 用户 填写 表单 并 提交
- Form1 将 再次 显示 来自 用户 的 信息 以及 其他 信息
- 用户 更改 字段 值 并 提交 , 但 仍 提交 旧 数据 。
我 当前 的 jQuery ( 我 使用 的 是 jQuery Form plugin ) :
$(document).ready(function() {
// do stuff when DOM is ready
var testCaseList = $('#testCaseId');
testCaseList.live('change', function() {
$.ajax({
url: 'populateSteps.htm',
type: 'GET',
data: 'testCaseId=' + $(this).val(),
success: function(data){
$('#formContainer').html(data);
var formId = $('#testCaseForm');
var validateButton = $('#validateButton');
validateButton.live('click', function() {
// prepare Options Object
var options = {
url: 'validateTestCase.htm',
success: function(data) {
$('#formContainer').html(data);
}
};
// pass options to ajaxForm
alert(formId.formSerialize());
formId.ajaxSubmit(options);
});
}
});
});
});
中 的 每 一 个
基本 上 , 更改 组合 框 中 的 值 后 , 将 显示 一 个 表单 , 并 将 一 个 单击 事件 附加 到 表单 按钮 上 。 单击 只 提交 表单 。
我 使用 live 方法 附加 事件 , 因为 每次 提交 后 都会 显示 表单 。 我 知道 这 不是 很 AJAX , 但 我 不得 不 这样 做 , 因为 Spring 不能 很 好 地 处理 部分 表单 。
我 可以 通过 使用 bind 将 事件 附加 到 新 创建 的 表单 上 来 做 得 更 好 , 但是 我 不 知道 应该 将 代码 放在 哪里 。
HTML/JSP code ... <script type="text/javascript">
$(document).ready(function() {
// Attach the event to the form
} </script>
格式
但 不 执行 脚本 。
- EDIT * * 由于 脚本 错误 而 未 执行 脚本 :丢失 ) ;
<script type="text/javascript">
$(document).ready(function() {
// Attach the event to the form
});
</script>
格式
现在 它 可以 工作 了 , 但 我 仍然 想 知道 为什么 live
绑定 使用 表单 中 的 旧 数据 。
1条答案
按热度按时间kg7wmglp1#
当我想将事件绑定到动态创建的对象时,我使用如下所示的LiveQuery插件:
实时查询:http://plugins.jquery.com/project/livequery