javascript - jquery序列化div内容以发布输入数据

标签 javascript jquery asp.net forms serialization

我正在尝试使用通常在表单上使用的 jQuery.serialize() 函数来序列化 div 内的数据。

我无法使用表单标记,因为我正在使用将所有内容包装在表单内的 asp.net Webforms,因此嵌套表单不起作用。

这是我的js代码:

$('div.request input.submit-button').on('click', function () {
var form = $(this).parent();

            $.ajax({
            type: "POST",
            url: '/API/InfoRequest.ashx',
            data: $(form).serialize(),
            dataType: "text",
            success: function (response) {           

            }
        })
});

但是 $(form).serialize() 返回一个空字符串。

这是 HTML:

<div role="form" id="sidebar-form"  class="request">
<div class="form-group has-feedback">
    <label for="name3">Nome</label>
    <input type="text" class="form-control" id="name3" placeholder="Nome e Cognome" name="name3">
    <i class="fa fa-user form-control-feedback"></i>
</div>
<div class="form-group has-feedback">
    <label for="email3">Email</label>
    <input type="email" class="form-control" id="email3" placeholder="Indirizzo Email" name="email3">
    <i class="fa fa-envelope form-control-feedback"></i>
</div>
<div class="form-group">
    <label>Categoria</label>
    <select class="form-control" id="category">
        <option value="Sales">Vendita</option>
        <option value="Support">Tecnica</option>
        <option value="Lorem">Logistica</option>
        <option value="Ipsum sit">Ipsum sit</option>
        <option value="Dolor amet">Dolor amet</option>
    </select>
</div>
<div class="form-group has-feedback">
    <label for="message3">Messaggio</label>
    <textarea class="form-control" rows="4" id="message3" placeholder="" name="message3"></textarea>
    <i class="fa fa-pencil form-control-feedback"></i>
</div>
<input type="button" value="INVIA" class="submit-button btn btn-primary">
</div>

我只想检索表单字段,例如输入、选择、文本区域,将它们作为表单 urlencoded 发布,然后在调用的 ASHX 处理程序中读取它们。

可以使用serialize()吗?

最佳答案

尝试

$('#sidebar-form :input, #sidebar-form textarea,  #sidebar-form select').serialize();

或者

$("#sidebar-form").find("select, textarea, input").serialize()

关于javascript - jquery序列化div内容以发布输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42635362/

相关文章:

javascript - 如何将一组类应用于 classList.contains?

javascript - 显示小时

javascript - 将图例移高一点

javascript - 如何将选择列表选项发布到 MVC 操作方法?

javascript - Node.js HTTP 流请求与 Express.js 请求对象

jquery - Nivo Slider 在 Firefox 中向右推

javascript - (jQuery) 如何避免在另一个点击事件下注册多个点击事件?

javascript - 添加了一个CSS背景,如何完全删除它

c# - 如何导出到 Excel?

c# - 在 ASP.NET WebForms 中回发后滚动到上一个位置