1

他の回答を確認しましたが、この問題に対処していないようです:

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

これは、選択されたオプションの数に等しい要素数を持つ配列を返します。

ただし、私がやりたいのは、選択したものだけでなく、リストボックス内のすべてのコンテンツを含む配列を返すことです。

ただし、このコードを実行すると:

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

1 つの要素を持つ配列を返し、リスト ボックスの各オプションはスペースで区切られます。何が違うのですか?私が試すことができる「:any」または同様のものはありますか?

追加情報については、私の 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

要素である場合#EnrolledParticipantsは、select単純に試してください

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