【问题标题】:jQuery form.serialize() not giving the current valuesjQuery form.serialize() 没有给出当前值
【发布时间】:2017-03-29 15:05:13
【问题描述】:

我有这个函数应该从我的表单提交序列化的值。 使用document.getElementById(form_id) 我得到正确的表单和值,如果我用data = $(form).serialize(); 序列化此表单,则值不正确。 其他问题的答案表明名称或被禁用的字段是原因,但这里不是这种情况。

这里是我的函数,结果来自 console.log。

var submit_form = function(form_id){
    form = document.getElementById(form_id);
    console.log(16, form);
    data = $(form).serialize();
    console.log(17, data);
    url = "/routmeda/checklist/" + form_id
    $.post( url, data, function( data ) {storeLogo.reload();} );
  }

未选中“aanvraagformulier”复选框。

这里是第 16 行控制台上的输出,正确

从第 17 行开始,serialize 表示复选框已打开,这是加载表单时的情况。

如何获得正确的序列化?

【问题讨论】:

  • 表单中是否还有其他同名的复选框?我听说某处的复选框没有完全正确地通过serialize() 函数。
  • 您是使用 javascript 还是在浏览器中手动检查复选框?如果您使用的是 javascript,我们可以查看执行此操作的代码吗?
  • 通过在浏览器中单击,它是唯一具有该名称的字段或复选框
  • @PraveenKumar 当我在网上的示例中尝试这个时,就像你的 jsbin 一样,这可以正常工作,这很难在网上重现

标签: javascript jquery forms serialization extjs


【解决方案1】:

我通过破坏显示表单的 ExtJs 窗口解决了这个问题,似乎这个窗口上的关闭按钮以前没有这样做。 document.getElementById(form_id); 给出了当前窗口/表单的值,而 jQuery 的选择器给出了那个窗口/表单的幽灵版本。 我不认为这是一个 ExtJs 问题,否则我会将其包含在我的问题中。感谢您的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多