我有一个加载文档主要部分的html表单,后加载ajax请求并获取一个xml文件,该文件被解析出来以创建可以更新/提交的“子”表单。这是'preload'形式
<html>
<head>
<script src="jquery.js">
<script src="jquery.forms.js">
<script>
$(document).ready(function () {
//Script to execute when form is loaded
loadOrder(unid);
});
</script>
</head>
<body>
<form id="mainform" name="main" method="post" action="whatever">
<input type="hidden" id="unid" name="unid" value="123" />
</form>
<div id="orderForms">
</div>
</body>
</html>
这是表格后载:
<html>...
<div id="orderForms">
<form id="order_1" name="order" method="post" action="whatever">
<input type="hidden" id="pid_1" name="pid" value="123" />
<input type="hidden" id="unid_1" name="unid" value="456" />
</form>
<form id="order_2" name="order" method="post" action="whatever">
<input type="hidden" id="pid_2" name="pid" value="123" />
<input type="hidden" id="unid_2" name="unid" value="789" />
</form>
</div>
</body>
</html>
JS代码:
function loadOrders(unid){
var rUrl = "url";
$.ajax({type: "GET", url: rUrl, async: true, cache: false, dataType: "xml", success: postLoadOrders}) ;
}
function postLoadOrders(xml){
nxtOrder = 1;
var html="";
$('order',xml).each(function() {
// parses the xml and generates the html to be inserted into the <div>
});
$("#orderForms").html(html);
}
这一切都有效,主要表单加载,<div>
中的'隐藏'表单都被写入。当我在主表单上放一个按钮时会出现问题......
function submitOrder(){
$("#pid_1").val('555');
$("#order_1").formSerialize();
$("#order_1").ajaxSubmit();
}
如果我在.val('555')之前警告($(“#pid_1”)。val())它会显示原始值,当我提醒时,它会显示新值,但它会提交原始值,如果我在firebug中打开html,则值不会显示为更改。
如果我将一个隐藏字段放入主窗体中,当文档加载并更改其值时存在,不仅新值发布,它还会在检查源时显示为已更改。
有什么想法吗?
答案 0 :(得分:0)
$('order',xml).each(function() {
});
这不是JQuery中的Object
您可以修改:
$('[name=order]',xml).each(function() {
});