diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js
index 124bab0c1f..8b9b1720b4 100644
--- a/war/src/main/webapp/scripts/hudson-behavior.js
+++ b/war/src/main/webapp/scripts/hudson-behavior.js
@@ -433,17 +433,29 @@ function renderOnDemand(e,callback,noBehaviour) {
if (!e || !Element.hasClassName(e,"render-on-demand")) return;
var proxy = eval(e.getAttribute("proxy"));
proxy.render(function (t) {
- var c = document.createElement(e.parentNode.tagName);
- c.innerHTML = t.responseText;
+ var contextTagName = e.parentNode.tagName;
+ var c;
+ if (contextTagName=="TBODY") {
+ c = document.createElement("DIV");
+ c.innerHTML = "
";
+ c = c.firstChild.firstChild;
+ } else {
+ c = document.createElement(contextTagName);
+ c.innerHTML = t.responseText;
+ }
+ var elements = [];
while (c.firstChild!=null) {
var n = c.firstChild;
e.parentNode.insertBefore(n,e);
if (n.nodeType==1 && !noBehaviour)
- Behaviour.applySubtree(n,true);
+ elements.push(n);
}
Element.remove(e);
+ t.responseText.evalScripts();
+ elements.each(function(n) { Behaviour.applySubtree(n,true); });
+
if (callback) callback(t);
});
}
@@ -1660,7 +1672,7 @@ function findFormParent(e,form,static) {
return null; // this field shouldn't contribute to the final result
var name = e.getAttribute("name");
- if(name!=null) {
+ if(name!=null && name.length>0) {
if(e.tagName=="INPUT" && !static && !xor(e.checked,Element.hasClassName(e,"negative")))
return null; // field is not active