我有这个代码可行,但硬编码。
$(document).ready(function(){
$('form').live('submit', function(){
var title = this.elements.title.value;
var owner = this.elements.owner.value;
var users = this.elements.users.value;
var groups = this.elements.groups.value;
var begin_date = this.elements.from.value;
var end_date = this.elements.to.value;
var anchor = this.elements.anchor.value;
var type = $(this).find('input:radio[name="ctype"]:checked').val() || '';
var aform = $('form[name="create_form"]');
稍后我需要aform
进行嵌套Ajax调用。
问题
如何构建aform
以便它不是硬编码的?页面上有很多表格。
它应该包含
var title = this.elements.title.value;
var owner = this.elements.owner.value;
var users = this.elements.users.value;
var groups = this.elements.groups.value;
var begin_date = this.elements.from.value;
var end_date = this.elements.to.value;
var anchor = this.elements.anchor.value;
var type = $(this).find('input:radio[name="ctype"]:checked').val() || '';
并且应该稍后使用嵌套的Ajax调用。
$.ajax({
type: "GET",
url: "/cgi-bin/ajax.pl",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: aform.serialize(),
答案 0 :(得分:1)
您不需要自己完成所有这些操作。 Jquery本身有一个form plugin,它通过ajax提交表单。这是自我解释的。
答案 1 :(得分:1)
这是一个将一些表单元素转换为JSON对象的简单示例 - 尽管如果您只想以JSON格式发送数据,Abdul Kader的建议会更好。
<form method="post" action="" id="example">
<p><label>Name<br><input type="text" name="name" value="Bob"></p>
<p><label>Happy<br><input type="checkbox" name="happy" checked></p>
<p><textarea name="information">Some text "data" here!</textarea>
</form>
<div id="exampleOutput">
</div>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function exampleFormData() {
var formData;
var jsonString = "({";
var jsonCount = 0;
// This will add each input to a JSON string
$("#example input, #example textarea").each( function () {
if (jsonCount > 0) {
jsonString += ", "
}
var key = this.name;
var value = this.value;
jsonString += key + ': "' + value.replace(/"/g, '\\"') + '"';
jsonCount++;
});
jsonString += "})"
// This converts the string into a JSON object
formData = eval(jsonString);
// Now you can use the formData JSON object...
$("#exampleOutput").html(formData.name + " " + formData.happy + " " + formData.information);
}
exampleFormData();
</script>
答案 2 :(得分:1)
var aform = $(this);
(根据桑德拉的要求: - )