waldol1的方法有效。我在这里提出一个建议,并提供一种替代方法。
改进:
对于清洁器的代码,只要使用 “添加(本)” 用于每个输入元素。
<input onchange="add(this)" />
然后,在add()函数,只需增加一个一线得到被点击
function add(e) {
var name = e.name;
// do stuff
}
元素的名称替代的解决方案:
我不是以经典的方式提交表格;我只是使用输入元素和Javascript的东西。我不在乎禁用表单元素,也不希望将其作为标志。相反,我使用JS对象来存储我更改的变量,然后当我构建参数时(我的情况下,通过AJAX请求提交),我只是运行该对象。
定义全局“tosubmit”对象(如果需要,可以使用数组)。
var tosubmit = new Object();
对于我想更新任何输入要素,我呼吁增加(这一点)时,有一个变化:
<input onchange="add(this)" />
的JS函数将改变的元素我的临时存储对象。
function add(e) {
// Store the element and it's value, ready for use later.
tosubmit[e.name] = e.value;
}
当我准备好时,我为我的AJAX更新构建参数。在我的casI中运行带ID的函数,就我而言。我运行tosubmit对象,如果更新成功,我将其清除,准备好再次使用。
function sendUpdate(id) {
// Start building up my parameters to submit via AJAX to server.
var params = "id="+encodeURIComponent(id);
// Run through the tosubmit object, add any updated form elements.
for (var i in tosubmit) {
params = params + "&" + i + "=" + encodeURIComponent(tosubmit[i]);
}
// (Do other stuff, build my http request, etc)
// Eventually submit params with the http request
http.send(params);
}
你到目前为止试过了什么?基本上,您应该为每个输入元素添加'onchange'处理程序,并将其添加到已更改元素的数组中。然后编写一个'onsubmit'处理程序,收集该数组中所有元素的值,序列化这些值并将它们提交给服务器。 – Barmar
我认为这应该足以让你尝试自己写。如果你不能工作,回来并显示你的代码。 – Barmar
我会试一试。 – waldol1