Какой самый простой способ передать несколько переменных в JQuery? - PullRequest
2 голосов
/ 20 августа 2010

У меня есть форма, в которой используется сообщение JQuery Json. У меня есть 10+ текстовых полей на странице. У меня есть переменные, которые я знаю только так ... есть ли другой способ передать несколько переменных?

$('#nameSubmit').click(function() {
    var status = document.getElementById('Select2').value;
    var lob = document.getElementById('LOB').value;
    var lName = document.getElementById('LName').value;
    var fName = document.getElementById('FName').value;
    var city = document.getElementById('City').value;
    var state = document.getElementById('State').value;
    $.post("Home/LoadTable", { Status: status, LOB: lob, LName: lName, FName: fName, City: city, State: state }, function(data) {
        //...process code works 
    }, 'json');
});

EDIT

Я использую следующий метод для добавления текстовых полей и выпадающих списков ...

<%using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "myForm" })) {%>
<td><%= Html.TextBox("LName")%></td>
<select name="Status" id="Select2"> 
    <option value="ALL">All Policies</option>             
    <option value="Active">Active</option>
    <option value="Cancelled">Cancelled</option>                                     
</select>
<% } %>

Ответы [ 3 ]

3 голосов
/ 20 августа 2010

Поместите текстовые поля внутри тегов <form>, затем используйте метод jQuery serialize.

<form id="myForm" action="javascript:void(0);">
    <input type="text" name="a" value="Input A" />
    <input type="text" name="b" value="Input B" />
    <input type="submit" value="Submit Form">
</form>

Затем вы можете сделать это:

$('#myForm').submit(function(){
    $.post("Home/LoadTable", $('#myForm').serialize(), function(data){
        // code...
    },'json');
});
0 голосов
/ 20 августа 2010

Следующий код будет перебирать все текстовые поля (но без текстовых полей) и создавать объект с идентификаторами в качестве ключа.

$('#nameSubmit').click(function () {
    var obj = {};
    $("input:text", this.form).each(function () {
        obj[this.name] = this.value;
    });
    $.post("Home/LoadTable", obj, function (data) { /* */ }, 'json');
});

РЕДАКТИРОВАТЬ: Другой человек предложил использовать$().serialize(), в этом случае я решительно поддерживаю это как лучший ответ.

0 голосов
/ 20 августа 2010

Это в значительной степени способ сделать это.Вы можете написать сериализатор форм, который будет производить для вас json, но вы все равно собираетесь передать полученный json в него.

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