我必须以JSON格式转换数据表单以发送到webAPI。
我有一个从第1页调用的弹出表单:
<form id="popupForm" method="post" class="form-horizontal" action="">
<div class="form-group">
<label class="col-sm-4 control-label" for="Nome">Nome</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="Nome" name="Nome" placeholder="Nome" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="Cognome">Cognome</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="Cognome" name="Cognome" placeholder="Cognome" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="Operatore">Operatore</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="Operatore" name="Operatore" placeholder="Operatore" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="Username">Username</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="Username" name="Username" placeholder="Username" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="Password">Password</label>
<div class="col-sm-5">
<input type="password" class="form-control" id="Password" name="Password" placeholder="Password" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="GruppoDiLavoro">Gruppo Di Lavoro</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="GruppoDiLavoro" name="GruppoDiLavoro" placeholder="GruppoDiLavoro" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="ProfiloFunzionalità">Profilo Funzionalità</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="ProfiloFunzionalità" name="ProfiloFunzionalità" placeholder="ProfiloFunzionalità" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="LivelloDiAccesso">Livello Di Accesso</label>
<div class="col-sm-5">
<select class="form-control" id="LivelloDiAccesso" name="LivelloDiAccesso" placeholder="LivelloDiAccesso">
@*http://formvalidation.io/examples/bootstrap-combobox/*@
<option value="1">Consultazione</option>
<option value="2">Ispettore 1° livello</option>
<option value="3">Ispettore 2° livello</option>
<option value="4">Tecnico</option>
<option value="5">Amministratore</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-5 col-sm-offset-4">
<div class="checkbox">
<label>
<input type="checkbox" id="Attivo" name="Attivo" />Attivo
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="DataCreazione">Data Creazione</label>
<div class="col-sm-5">
<input type="date" class="form-control" id="DataCreazione" name="DataCreazione" placeholder="DataCreazione" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="DataScadenza">Data Scadenza</label>
<div class="col-sm-5">
<input type="date" class="form-control" id="DataScadenza" name="DataScadenza" placeholder="DataScadenza" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="Mail">Mail</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="Mail" name="Mail" placeholder="Mail" />
</div>
</div>
<div class="form-group">
<div class="col-sm-9 col-sm-offset-4">
<button type="submit" class="btn btn-primary" name="Save" value="Save">Save</button>
</div>
</div>
第1页有以下代码:
function OpenPopup(pageUrl) {
//alert(localStorage.getItem("UtenteIndex"));
var $pageContent = $('<div/>');
//$pageContent.load(pageUrl);
$pageContent.load(pageUrl, function () {
$('#popupForm', $pageContent).removeData('validator');
$('#popupForm', $pageContent).removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse('form');
});
$dialog = $('<div class="popupWindow" style="overflow:auto"></div>')
.html($pageContent)
.dialog({
draggable: true,
autoOpen: false,
resizable: false,
model: true,
title: 'Edita Utente',
height: 650,
width: 900,
close: function () {
$dialog.dialog('destroy').remove();
}
})
$('.popupWindow').on('submit', '#popupForm', function (e) {
var url = $('#popupForm')[0].action;
//alert($('#popupForm').serialize())
$.ajax({
type: "POST",
url: url,
data: $('#popupForm').serialize,
success: function (data) {
if (data.status) {
$dialog.dialog('close');
oTable.ajax.reload();
}
alert(url);
alert(JSON.stringify(data));
},
error: function (xhr, status, error) {
$dialog.dialog('close');
alert(xhr.responseText);
}
})
e.preventDefault();
})
$dialog.dialog('open');
}
输出JSON不正确。代码返回如下字符串:
! DOCTYPE html
什么是最好的方法来字符串化输入数据?我哪里错了?
您是否尝试过将您的函数:
$('.popupWindow').on('submit', '#popupForm', function (e) .....
在这条线之后?
$dialog.dialog('open');
我认为你的popup的HTML是在你调用$dialog.dialog('open ')之后添加到DOM的;
因此,与弹出窗口标记关联的每个事件都需要在添加到 DOM 后进行连接
就我个人而言,我使用这个jquery片段:
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
它将把表单序列化为一个对象,其中name属性是属性,value是值,使用方法如下:
data = $('#myForm').serializeObject();
我试图想出一个好的解决方案来将字符串转换为json格式,但我不知道它是否足够好。 我想我可能会使用str.replace from(to{,并在}{之间插入逗号,但我如何找到要插入的索引?“”代表Name、Author、fileSize呢?在转换为可读的json字符串之后,我可以序列化为json(由GSON/Jackson)。
问题内容: 我正在尝试将表单数据转换为对象,但我有这个线程,但是我不知道为什么它对我不起作用。我正在使用以下代码。 我尝试调试它,并注意到当我的函数运行时,它总是在else语句中运行代码。 问题答案: 我在JSFiddle中添加了以上表单,它将JSON数据显示为输出。 工作中的JSFiddle
问题内容: 我正在尝试将HTML表中存在的数据转换为JSON,以便可以在服务器端进行相应的处理。我可以序列化数据,但是结果充其量只能生成不直接链接的独特数据数组。像:这是我正在使用的形式: 序列化数据的脚本是: 经过数页StackOverFlow之后,我得到了serializeFormJSON(): 通过使用所有这些,我可以得到像这样的JSON: 我尝试了多种方法以名称-性别格式获取它们,但是每种
问题内容: 将列表/元组转换为dict的最佳方法是什么,其中键是列表的不同值,而值是这些不同值的频率? 换一种说法: (我不得不多次执行上述操作,标准库中是否有适合您的内容?) 编辑: Jacob Gabrielson指出2.7 / 3.1分支的标准库中有一些内容 问题答案: 有点儿 通常效果很好。
问题内容: 是否有任何jQuery或javascript库根据给定的json数据生成动态表?我不想定义列,该库应该读取json哈希中的键并生成列。 当然,我可以自己遍历json数据并生成html表。我只想知道是否存在可以简单重用的此类库。 问题答案: 感谢大家的答复,这使用jQuery。 程式码片段:
我关注的是从包含数千个元素的Java PriorityQueue创建排序数组的不同风格。Java8文档说 如果需要有序遍历,请考虑使用数组。排序(pq.toArray())。 然而,我确实喜欢流式API,所以我最初的想法是 (其中,是PriorityQueue的自定义比较器,我确实想要它的相反顺序。)与下列习惯用法相比,使用这个习惯用法有什么缺点吗 后面的代码显然更直接地遵循了API文档的建议,但