<form id="form1">
<ul>
<li>Content</li>
<li>Content</li>
<li>Content</li>
</ul>
<input type="submit" value="Submit" />
</form>
我想在点击提交按钮时发送ul标签中的内容。
提交的数据应该是
<li>Content</li>
<li>Content</li>
<li>Content</li>
我如何在jquery中使用适当的char来编写它。逃避&lt;&gt;的
答案 0 :(得分:3)
要挂钩提交,请执行以下操作:
$("#form1").submit(function () {
// do stuff
return false;
});
将// do stuff
部分替换为以下之一:
$.ajax({
url: "...",
type: "POST",
data: $("#form1 ul").html()
});
如果你想逃避它,我会在服务器端这样做。您也可以执行此操作,以执行客户端转义:
$.ajax({
url: "...",
type: "POST",
data: escape($("#form1 ul").html())
});
我认为最优雅的解决方案是将其作为JSON发送到服务器。
$.ajax({
url: "...",
dataType: "json",
// the value of `type` is irrelevant here
data: {html: $("#form1 ul").html(), moreMetadDtaIfYouWant: 5}
});
但那是你的电话;)
答案 1 :(得分:2)
免责声明:这是我基于其他AJAX答案的替代方案。
您可以通过使用javascript设置隐藏字段的值来完成此操作。此外,您的表单需要一个“操作”属性 - 它必须提交到某个地方。
<!-- HTML -->
<form action="/my_script.php" id="my_id">
<ul>
Stuff...
</ul>
<input type="hidden" name="html />
</form>
剧本:
$("#my_id").submit(function () {
var html = $(this).find("ul").html();
$(this).find("input[name=html]").val(escape(html));
// don't return false, we want the submit event to go through
});
表单将会提交,隐藏字段会将<ul></ul>
标记中的转义HTML作为值。
答案 2 :(得分:0)
嗯,我认为你必须在某个表单字段中提交你的值,所以你首先必须创建一些类型的输入,如果我不得不冒险猜测,可能隐藏在你的表单中
<input id="your_id" type="hidden" />
然后使用jquery,您可以在表单的onSubmit中执行此操作...
$("#form1").submit(function(){
$("#your_id").val($("#form1 ul").html());
}
我不确定该表单是否会自动转义您提交或不提交的HTML。