【问题标题】:Not able to get serialized Array of Kendo UI Form无法获得 Kendo UI 表单的序列化数组
【发布时间】:2014-11-27 09:04:21
【问题描述】:

我有一个简单的表单,其中我有一个带有一种输入类型和按钮的表单元素。

当我点击按钮时,我正在尝试使用获取表单数据

var fData = $("#test").serializeArray();

但是由于某种原因,我无法获得任何形式的值。

这可能是什么原因?

JSFiddle Demo

【问题讨论】:

  • 你试过 ..serialize() 吗?;
  • @JohnGr。是的,但没用。
  • 你用 ID="test" 序列化输入?
  • 所有字段都没有序列化。没有type 属性,serializeArray() 不会序列化按钮和输入。
  • @Maxime 只是为了清楚,只有name 属性是必需的。如果未提供该属性,则假定为 texttype

标签: javascript jquery ajax kendo-ui


【解决方案1】:

有几个问题。首先input没有name属性,所以不能序列化。其次,您创建名为fData 的变量,但记录fdata - JS 区分大小写。最后,当单击按钮时,表单正在以通常的方法提交,这意味着在第一个alert 之后将阻止处理。为了防止这种情况,您可以将按钮更改为标准类型,而不是提交按钮:

<form id="test" method="POST">
    <p>
        <input id="val" name="foo" />
    </p>
    <button class="k-button" id="rset" type="button">submit</button>
</form>

Example fiddle

或者您也可以将代码设置为在表单的submit 事件下运行,并使用preventDefault 停止标准表单提交:

$("#test").submit(function (e) {
    e.preventDefault();
    alert('ok');
    var fData = $(this).serializeArray();
    alert('rData  ' + fData);
});

Example fiddle

【讨论】:

  • 感谢指出错误,我没有为输入添加名称属性是相当愚蠢的。赞赏。
  • 没问题,很乐意提供帮助。
猜你喜欢
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 2012-05-25
  • 1970-01-01
相关资源
最近更新 更多