1.1 --- a/examples/Common/Configurator/Resources/scripts/XSLForms.js Mon Jul 18 16:42:54 2005 +0000
1.2 +++ b/examples/Common/Configurator/Resources/scripts/XSLForms.js Mon Jul 18 16:43:02 2005 +0000
1.3 @@ -1,5 +1,12 @@
1.4 function requestUpdate(url, fieldName, targetName, targetFieldNames, elementPath) {
1.5
1.6 + // If no field names exist as targets for the update, do not attempt to
1.7 + // update them.
1.8 +
1.9 + if (targetFieldNames == "") {
1.10 + return;
1.11 + }
1.12 +
1.13 // Note that XMLHttpRequest access may be denied if Mozilla believes that
1.14 // this resource's URL and the supplied URL are different.
1.15
1.16 @@ -10,14 +17,14 @@
1.17
1.18 var fieldValue = document.getElementsByName(fieldName)[0].value;
1.19
1.20 + // Send the controlling field value.
1.21 +
1.22 + var requestBody = (fieldName + "=" + fieldValue);
1.23 +
1.24 // Process each target field name.
1.25
1.26 var targetFieldNameArray = targetFieldNames.split(",");
1.27
1.28 - // Send the controlling field value.
1.29 -
1.30 - var requestBody = (fieldName + "=" + fieldValue);
1.31 -
1.32 // Add the values of the dependent fields.
1.33
1.34 for (var i = 0; i < targetFieldNameArray.length; i++) {
1.35 @@ -31,6 +38,10 @@
1.36 targetFieldValue = targetFieldNodes[v].value;
1.37 requestBody += ("\r\n" + targetFieldName + "=" + targetFieldValue);
1.38 }
1.39 +
1.40 + // NOTE: Konqueror hack: disable fields.
1.41 +
1.42 + disableFields(targetFieldName);
1.43 }
1.44
1.45 // Add the element path specification.
1.46 @@ -58,4 +69,43 @@
1.47 targetElement.parentNode.replaceChild(importedElement, targetElement);
1.48 //importedElement.setAttribute("style", "background-color:red;");
1.49 }
1.50 +
1.51 + // NOTE: Test Konqueror bug.
1.52 +
1.53 + //showMismatch(targetFieldNameArray);
1.54 }
1.55 +
1.56 +function disableFields(targetFieldName) {
1.57 +
1.58 + for (var i = 0; i < document.forms.length; i++) {
1.59 + var form = document.forms[i];
1.60 + for (var j = 0; j < form.elements.length; j++) {
1.61 + if (form.elements[j].name == targetFieldName) {
1.62 + form.elements[j].name = "";
1.63 + }
1.64 + }
1.65 + }
1.66 +}
1.67 +
1.68 +function showMismatch(targetFieldNameArray) {
1.69 +
1.70 + // Show how the number of field elements with a given name can be different
1.71 + // from the number known to the DOM Level 0 part of the API.
1.72 +
1.73 + for (var h = 0; h < targetFieldNameArray.length; h++) {
1.74 + var targetFieldName = targetFieldNameArray[h];
1.75 + var targetFieldNodes = document.getElementsByName(targetFieldName);
1.76 + alert("Nodes for " + targetFieldName + ": " + targetFieldNodes.length);
1.77 +
1.78 + var count = 0;
1.79 + for (var i = 0; i < document.forms.length; i++) {
1.80 + var form = document.forms[i];
1.81 + for (var j = 0; j < form.elements.length; j++) {
1.82 + if (form.elements[j].name == targetFieldName) {
1.83 + count++;
1.84 + }
1.85 + }
1.86 + }
1.87 + alert("Fields for " + targetFieldName + ": " + count);
1.88 + }
1.89 +}