我需要获得每个检查了Finalize的表行的行ID,并将该字符串/json发送到ASP.net MVC控制器。Ajax给我带来了问题。我设法获取了需要提交的数据,但我不确定最好的方法是什么。我需要创建一个json对象然后发布它,还是有一种简单的方法可以发布我拥有的东西?我尝试了json路径,但没有走多远,所以我回到了这个位置,这至少是获取了正确的数据。
finalize = function() {
var tableData = "";
$('#results').find('tr').each(function() {
var row = $(this);
if (row.find('input[type="checkbox"]').is(':checked')) {
tableData = tableData + $(this).find('td:first').text() + '\n'; // get ID
}
});
//var myRows = JSON.parse(tableData);
//$.post("/Journal/SaveEntry", { Row: myRows });
alert(tableData);
};<script src="https://github.com/maxazan/jquery-treegrid/blob/master/js/jquery.treegrid.js"></script>
<script src="https://github.com/maxazan/jquery-treegrid/blob/master/js/jquery.treegrid.bootstrap3.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<table class="table tree truncate_table">
<tbody>
<tr class=" info">
<th>Row ID</th>
<th>...</th>
<th>Finalize</th>
</tr>
<tr class="treegrid-1">
<td>
<span class="treegrid-expander"></span>
R4915
</td>
<td>...</td>
<td>
<input type="checkbox" name="Finalize" value="Finalize">
</td>
</tr>
<tr class="treegrid-2">
<td>
<span class="treegrid-expander"></span>
<a target="_blank" href="http://example.com" class="vt-p">
R4942
</a>
</td>
<td>...</td>
<td>
<input type="checkbox" name="Finalize" value="Finalize">
</td>
</tr>
</tbody>
</table>
<button onclick="finalize()" type="button" class="btn btn-danger pull-right">Finalize</button>
发布于 2014-11-26 23:13:43
在这里,我假设返回ID的集合比在控制器上拆分一个字符串更有用
Html
<button type="button" id="finalize" class="btn btn-danger pull-right">Finalize</button>脚本
$('#finalize').click(function() {
var idArray = new Array();
$('#results').find('tr').each(function() {
var row = $(this);
if (row.find('input[type="checkbox"]').is(':checked')) {
idArray.push(row.find('td:first').text());
}
});
$.ajax({
url: '@Url.Action("SaveEntry", "Journal")';
type: 'post'
traditional: true,
data: { values: idArray }
})
});控制器
public ActionResult SaveEntry(string[] values) // or int[] values if the ID is typeof int
{
}发布于 2014-11-26 22:40:39
您最想要的是jquery序列化并发布您的表单。请看下面的博客文章,使用jQuery提交.NET MVC表单。
发布于 2014-11-26 22:57:24
请更改您的最终功能:
finalize = function()
{
var tableData = "";
$('#results').find('tr').each(function() {
var row = $(this);
if (row.find('input[type="checkbox"]:checked'))
{
tableData = tableData + row.find('td:first > a').text() + '\n';
}
});
//$.post("/Journal/SaveEntry", tableData); // parse json at your controller
alert(tableData);
};https://stackoverflow.com/questions/27160000
复制相似问题