建立在这个问题的$.fn.serializeObject()功能上,我希望能够在我的表单名称中支持"点符号",如下所示:
<form>
<input name="Property.Items[0].Text" value="item 1" />
<input name="Property.Items[0].Value" value="1" />
<input name="Property.Items[1].Text" value="item 2" />
<input name="Property.Items[1].Value" value="2" />
</form>
Run Code Online (Sandbox Code Playgroud)
给出$('form').serializeArray()产生以下内容:
[{"name":"Property.Items[0].Text","value":"item 1"},
{"name":"Property.Items[0].Value","value":"1"},
{"name":"Property.Items[1].Text","value":"item 2"},
{"name":"Property.Items[1].Value","value":"2"}]
Run Code Online (Sandbox Code Playgroud)
我怎样才能达到以下所需的结果:
{Property: {Items: [{Text: 'item 1', Value: '1'},
{Text: 'item 2', Value: '2'}]} }
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
编辑:具体来说,所需的代码将被添加到serializeObject扩展中,这样除了它现在的工作方式之外,它还将支持上述约定.这是现有的方便方法.
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || ''); …Run Code Online (Sandbox Code Playgroud) 当我在Asp.Net MVC应用程序上工作时,在我的应用程序中,我使用jQuery.POST方法提交表单.
例如
jQuery.post('/Product/Save', jQuery(document.forms[0]).serialize(),
function (data) { alert('Product Added Successfully.); }
);
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段,我想通过另一个参数..让我们说... ProductID.
所以,这个想法是,我想通过这两个jQuery(document.forms[0]).serialize()和ProductID variable的jQuery.POST method,所以我既可以得到Form and ProductID我的controller's action method.
有人可以让我知道我会这样做吗?
提前致谢.
实际上我正在尝试将数据从jQuery发送到Spring控制器,而在Spring控制器中我试图使用自定义bean获取数据@RequestBody.但我无法这样做.它不起作用.但是,当我发送相同的数据,因为@RequestParam它工作正常,但万一@RequestBody没有发生.我已经序列化了html表单并将该数据发布到控制器.我正在粘贴所有代码.我正在使用jQuery版本jquery-1.6.2.min.js,下面是我正在使用的jar列表:
commons-fileupload-1.1.1.jar
commons-io-1.2.jar
commons-logging-1.1.1.jar
hibernate-validator-4.0.2.GA.jar
jackson-all-1.7.6.jar
jackson-mapper-asl-1.5.2.jar
jstl-1.2.jar
log4j-1.2.14.jar
servlet-2.3.jar
slf4j-api-1.5.6.jar
slf4j-log4j12-1.5.6.jar
spring-asm-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-core-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring-tx-2.5.5.jar
spring-web-3.0.5.RELEASE.jar
spring-webmvc-3.0.5.RELEASE.jar
validation-api-1.0.0.GA.jar
Run Code Online (Sandbox Code Playgroud)
以下是控制器代码:
package com.devmanuals.tutorial.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.devmanuals.tutorial.service.ArithmeticService;
/**
* Handles and retrieves the main requests
*/
@Controller
@RequestMapping("/main/ajax")
public class AjaxController {
protected static Logger logger = Logger.getLogger("controller");
@Resource(name="springService")
private ArithmeticService …Run Code Online (Sandbox Code Playgroud) 我有以下表格:
<form id="editForm">
<input class="span12" name="name" type="text" placeholder="Product name...">
<input class="span12" name="sku" type="text" placeholder="SKU...">
<input name="basePrice" class="span12" type="text" placeholder="Base price...">
</form>
Run Code Online (Sandbox Code Playgroud)
如何将其转换为可以像下面这样访问的关联数组?
formArray ['name'],formArray ['sku'] ......等
我想使用 JQuery 将我的 MVC 表单序列化为 JSON,然后想在 C# 中反序列化一些值,例如后端输入字段的值,但我无法在 json 中序列化它......请帮助我解决这个问题。以下是我的代码.
<script type="text/javascript">
$(function () {
$('#btnsearch').click(function (e) {
var searchname = $('#txtsearch').val();
var form = $(this).serializeArray();
DrawTable(form);
});
function DrawTable() {
var props = [];
props.push({ name: "FirstName", value: firstname });
BindDataTable({ AllowPaging: true, ShowFilter: false, ShowEditLink: true, EmptyTableText: 'No Data Found', SortIndex: 0, SortDirection: "asc" },
"#tblCustomers",
"@Url.Action("GetAllCustomers", "Customer")",
props,
[{ name: "Id", cellClass: "alignCenter", Sortable: true, index: 0 }, { name: "FirstName" }, { name: "ABN" }, { …Run Code Online (Sandbox Code Playgroud) 我知道我可以使用 ajax.url 对数据表发出 ajax 请求,如下所示:
var table = $('#example').DataTable( {
ajax: "/mylink"
} );
...
table.ajax.url( 'newData.json' ).load();
Run Code Online (Sandbox Code Playgroud)
但是如何使用相同的语法将数据作为参数传递给 url?我尝试一下table.ajax.url( 'mylink' ).data(myData).load();。显然这不是解决方案。
我不想为了使用而破坏并重新初始化数据表:
...
"ajax" : {
"url" : "mylink",
"data" : myData
}
...
Run Code Online (Sandbox Code Playgroud)
我该怎么办?使用现有初始化表(此处为 js var 表)的语法是什么?谢谢
我正在使用mvc和jquery数据表,并进行服务端处理.
我创建了两个类模型:第一个jQueryParamModel,将dataTables参数传递给动作控制器
public class JQueryDataTableParamModel
{
/// <summary>
/// Request sequence number sent by DataTable, same value must be returned in response
/// </summary>
public string sEcho{ get; set; }
/// <summary>
/// Text used for filtering
/// </summary>
public string sSearch{ get; set; }
/// <summary>
/// Number of records that should be shown in table
/// </summary>
public int iDisplayLength{ get; set; }
/// <summary>
/// First record that should be shown(used for paging)
/// </summary>
public int …Run Code Online (Sandbox Code Playgroud) 尝试将表单加载到FormData对象中,但它只是创建一个空的FormData,我可以提醒表单对象(显示HTMLFORMOBJECT),如果我删除e.preventDefault,它会将名称/值配对到url但是FormData没有不行.我甚至尝试使用隐藏输入创建虚拟表单,但它们不会加载到FormData中
JAVASCRIPT
$('#create-element-form').submit(function(e) {
e.preventDefault();
var formdata = new FormData(document.getElementById('create-element-form'));
alert(formdata.get('name'));
});
Run Code Online (Sandbox Code Playgroud)
HTML
<form id="create-element-form">
<div class="form-group">
<input type="text" class="form-control" name="name" placeholder="Element Name" maxlength="100" required/>
</div>
<div class="form-group">
<input type="text" class="form-control text-number-input" name="backups" placeholder="Number of backups for element" maxlength="100" required/>
</div>
<button type="submit" class="btn btn-default btn-lg btn-block">Create Element</button>
</form>
Run Code Online (Sandbox Code Playgroud)
它只是提醒
undefined
Run Code Online (Sandbox Code Playgroud)
我觉得这可能是我想念的简单事情
我想知道如何使用jQuery LOAD函数为表单提交POST数据,发送表单的序列化数据.
所以,举个例子,我该怎么做:
$('someElement').click(function(){
var formData = $('formHere').serialize();
$('anotherElement').load('somePage', formData);
)};
Run Code Online (Sandbox Code Playgroud)
就目前而言,这不起作用 - 如果不发布数据,而是发送GET请求.我不想开始使用$ .post方法(因为我只是不想!),我在这里做错了吗?
解决方案:使用serialiazeArray代替 - 如同
var formData = $('formHere').serializeArray()
Run Code Online (Sandbox Code Playgroud) 我需要在一个请求中发送模型数据和JSON数据.这是什么意思:
如果我使用此函数发送JSON数据:
$("#SaveOrder").click(function () {
$.ajax({
url: '/Manager/AddOrder',
type: 'POST',
dataType: 'json',
data: $.toJSON(ResultArray),
contentType: 'application/json; charset=utf-8'
});
});
Run Code Online (Sandbox Code Playgroud)
我有
public ActionResult AddOrder(SUPNew.Models.Order newOrder, List<OrderList> ResultArray)
SUPNew.Models.Order newOrder = null
List<OrderList> ResultArray = not null
Run Code Online (Sandbox Code Playgroud)
但如果我发送请求,<input type="submit">我有
SUPNew.Models.Order newOrder = not null
List<OrderList> ResultArray = null
Run Code Online (Sandbox Code Playgroud)
如何在一个请求中发送jQuery数组(JSON数据)和SUPNew.Models.Order?
ResultArray- $ .toJSON(ResultArray)的内容,其中ResultArray是jQuery数组,如:
var CurrentOrder =
[{
'ProviderAn': $("#DdlProviders").val(),
'ItemAn': $("#DdlItems").val()
}];
Run Code Online (Sandbox Code Playgroud)
这是MVC 2
jquery ×8
javascript ×6
asp.net-mvc ×4
ajax ×2
json ×2
.net ×1
arrays ×1
c# ×1
datatables ×1
dom ×1
forms ×1
java ×1