我正在尝试使用通常在表单上使用的 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/