jquery 如何将事件附加到新建对象

dldeef67  于 2022-11-22  发布在  jQuery
关注(0)|答案(1)|浏览(88)

我 的 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 绑定 使用 表单 中 的 旧 数据 。

kg7wmglp

kg7wmglp1#

当我想将事件绑定到动态创建的对象时,我使用如下所示的LiveQuery插件:

$('.zoom').livequery('click' , function(e){
      x = Math.round( e.pageX - $(this).offset().left);
      y = Math.round(e.pageY - $(this).offset().top);
      sendRequest(71609);
   });

实时查询:http://plugins.jquery.com/project/livequery

相关问题