通过JQuery添加复选框到表单中,而不是在JQuery提交的formcollection中



我接手了另一个项目,除了这个问题,其他的都解决了。我想我以前见过这个,但我怎么也想不起来解是什么了。

.spark视图中的表是这样的。然后调用JQuery脚本,使用getJSON()首先清除所有行,然后填充主体,构建所有行和列,并在每行的第一列中添加一个复选框—每个复选框称为"testtem"。

<form id='new_test_items' name='new_test_items' method='post' action='${Url.Action("AddTestItems", new { id = Model.TestID })}'>
    <table id='component_list' name='component_list' class='component_list_table striped_table' cellpadding='0' border='0' cellspacing='0'>
        <thead>
            <tr>
                <th>&nbsp;</th>
                <th>Column1</th>
                <th>Column2</th>
                <th>Column3</th>
                <th>Column4</th>
                <th>Column5</th>
                <th>Column6</th>
                <th>Column7</th>
                <th>Column8</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
</form>

还有一个.click事件处理程序来提交表单:

$('#add_selected').click(function() {
    var $items = $('#component_list input:checkbox:checked');
    // If none checked, alert
    if ($items.length == 0) {
        alert('No items have been selected.');
        return false;
    }
    else {
        $('#new_test_items').submit();
    }
});

表单被提交给控制器操作,我假设复选框将在表单集合中传递回来。

    public ActionResult AddTestItems(int id, FormCollection coll)
    {
        Dictionary<string, ValueProviderResult> vals = coll.ToValueProvider() as Dictionary<string, ValueProviderResult>;
        // vals is null here
    }

创建vals时,返回null。因此,要么formcollection不包含数据,要么有一个问题,我不知道创建字典。

任何帮助都将是非常感激的。

谢谢!

复选框只在被选中时作为HTTP POST数据提交。您是否尝试检查几个框,然后查看它们是否出现在表单集合中?

相关内容

  • 没有找到相关文章

最新更新