1

我检查了其他答案,他们似乎没有解决这个问题:

  var values = [];
            $('#EnrolledParticipants :selected').each(function (i, option) {
                values[i] = $(option).text();
            });

这将返回一个数组,其元素数量等于所选选项的数量。

但是,我想做的是返回一个包含列表框中所有内容的数组,而不仅仅是选定的内容。

当我执行此代码时:

  var values = [];
            $('#EnrolledParticipants').each(function (i, option) {
                values[i] = $(option).text();
            });

它返回一个包含一个元素的数组,列表框的每个选项都用空格分隔。知道有什么不同吗?有没有“:任何”或类似的东西我可以尝试?

有关其他信息,我的 ajax 调用如下所示:

$.ajax({
                url: '@Url.Action("SaveStudy")',
                type: "POST",
                contentType: 'application/json',
                data: JSON.stringify({
                    Participants: values,
                    StudyName: $("#StudyName").val(),
                    AssessmentID: $("input:radio:checked").val()
                }),
                success: function (result) {

                    $("#notify-container").notify("create", {
                        title: 'Update',
                        text: "Study was saved to database."
                    });

                },
                error: function () {
                    alert("No banks were selected.  Add at least one bank to create an assessment.");
                }
            });

我的控制器标头如下所示:

public ActionResult SaveStudy(string StudyName, string AssessmentID, string[] Participants)
        {

谢谢!

4

1 回答 1

5

如果#EnrolledParticipantsselect元素,请尝试简单

$('#EnrolledParticipants option').each(function (i, option) {
      values[i] = $(option).text();
});
于 2012-04-17T14:24:56.703 回答