Javascript 无法获取剑道UI表单的序列化数组
我有一个简单的表单,其中有一个表单元素,有一个输入类型和按钮 当我点击按钮时,我试图使用Javascript 无法获取剑道UI表单的序列化数组,javascript,jquery,ajax,kendo-ui,Javascript,Jquery,Ajax,Kendo Ui,我有一个简单的表单,其中有一个表单元素,有一个输入类型和按钮 当我点击按钮时,我试图使用 var fData = $("#test").serializeArray(); 然而由于某种原因,我无法得到任何形式的值 这可能是什么原因 有几个问题。首先,输入没有名称属性,因此无法序列化。其次,创建名为fData的变量,但logfData-JS区分大小写。最后,单击按钮时,表单将以通常的方式提交,这意味着在第一次发出警报后,将阻止处理。要防止出现这种情况,您可以将按钮更改为标准类型,而不是“提交”按
var fData = $("#test").serializeArray();
然而由于某种原因,我无法得到任何形式的值
这可能是什么原因
有几个问题。首先,
输入
没有名称
属性,因此无法序列化。其次,创建名为fData
的变量,但logfData
-JS区分大小写。最后,单击按钮时,表单将以通常的方式提交,这意味着在第一次发出警报后,将阻止处理。要防止出现这种情况,您可以将按钮更改为标准类型,而不是“提交”按钮:
<form id="test" method="POST">
<p>
<input id="val" name="foo" />
</p>
<button class="k-button" id="rset" type="button">submit</button>
</form>
您是否尝试过..序列化()@约翰格。是的,但不起作用。您使用ID=“test”序列化输入?所有字段均未序列化。serializeArray()
不序列化没有类型的按钮和输入。@Maxime只是为了清楚起见,只需要名称
属性。如果未提供属性,则假定为文本的类型
。感谢您指出错误,我没有为输入添加name属性是相当愚蠢的。谢谢。没问题,很乐意帮忙。
$("#test").submit(function (e) {
e.preventDefault();
alert('ok');
var fData = $(this).serializeArray();
alert('rData ' + fData);
});