Создание массива объектов jquery и размещение его значений в форме отправки - PullRequest
0 голосов
/ 05 октября 2011

Я динамически добавил элементы html (списки выбора) в форме:

//Dynamicly adding selectlist elements
function newshit() {
    i = i + 1
    $("#mytable").append("<tr><td><div id='div" + i + "'><select id='elem" + i + "' name='elem" + i + "' class='ted'></select><input type='button' value='-' id='buttonminus" + i + "' style='width:5%;' onclick='removeelem(elem" + i + ",buttonminus" + i + "," + i + ")'/></div></td></tr>")
    getitems("elem" + i)
}

//filling lists
function getitems(item) {
    $.getJSON('@Url.Content("~/Stok/Items/")', {}, function (data) {
        $.each(data, function (i, c) {
            $("#" + item).append("<option value='" + c.Value + "' title='" + c.Text + "' label='" + c.Text + "'>" + c.Text + "</option>")
        })
    })
}

//removing element, when button next to it used
function removeelem(elem,buttonminus,i) {
    if ($("select").length > 1) {
        $("#div" + i).closest('tr').empty().remove()
    } else if ($("select").length <= 1) {
        alert("At least 1 of items must be chosen to create a group!")
    }
}

//checking elements and values existence
function check() {
    var slcts = $("select").serialize();
    alert(slcts)
}

Я пытаюсь получить значение выбранного параметра каждого списка выбора и поместить их в массив, после чего отправить их моему контроллеру при отправке формы.

Как мне этого добиться?

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Нужно проверить это, но я думаю, что должно работать следующее:

  1. Измените свой код так, чтобы формат ваших идентификаторов был примерно таким:

    ID = "эль [0]"

Тогда, если у вашего контроллера есть подпись, примерно такая:

public ActionResult Something(IEnumerable<string> elem)
{

}

Тогда он должен "просто работать".

1 голос
/ 05 октября 2011

Вы можете использовать что-то вроде -

var selectdata = $("select").serialize()

Это вернет строку в форме <select name attribute1>=<chosen value1>&<select name attribute2>=<chosen value2> и т. Д. Вам нужно будет добавить атрибут 'name' в выбранный вами HTML при его создании.чтобы это работало.

Демонстрация - http://jsfiddle.net/ipr101/fZXha/

Затем можно поместить переменную selectdata в скрытое поле перед отправкой формы или отправить ее через AJAX с помощью ajax или post методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...