From 8082f3a4a0c46b667de0fc4c6f59f0e279565c07 Mon Sep 17 00:00:00 2001 From: "Olli.Pettay%helsinki.fi" Date: Fri, 28 Oct 2005 18:17:22 +0000 Subject: [PATCH] Bug 311475, select/select1 not updated on inserts when using itemset, r=doronr+aaronr+me --- extensions/xforms/nsXFormsItemSetElement.cpp | 5 +++++ extensions/xforms/resources/content/select.xml | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/extensions/xforms/nsXFormsItemSetElement.cpp b/extensions/xforms/nsXFormsItemSetElement.cpp index 3ffe09107853..e95594056875 100644 --- a/extensions/xforms/nsXFormsItemSetElement.cpp +++ b/extensions/xforms/nsXFormsItemSetElement.cpp @@ -193,6 +193,11 @@ nsXFormsItemSetElement::SelectItemByValue(const nsAString &aValue, nsIDOMNode ** NS_IMETHODIMP nsXFormsItemSetElement::Bind() { + mModel = nsXFormsUtils::GetModel(mElement); + if (mModel) { + mModel->AddFormControl(this); + } + return NS_OK; } diff --git a/extensions/xforms/resources/content/select.xml b/extensions/xforms/resources/content/select.xml index f42519d5c1d5..2fde8ec17d4c 100644 --- a/extensions/xforms/resources/content/select.xml +++ b/extensions/xforms/resources/content/select.xml @@ -136,9 +136,6 @@ this.uiElement.removeAttribute("readonly"); } - if (!this.delegate.hasBoundNode) - return; - this._refreshing = true; // We detect if the instance data we bind to has changed. If it has, @@ -175,7 +172,10 @@ // select builds its own UI by parsing it's children. // replace new line (\n), tabs (\t) and carriage returns (\r) with "". - var value = this.delegate.value.replace(/\n|\t|\r/g, " "); + var value = ""; + + if (this.delegate.value) + value = this.delegate.value.replace(/\n|\t|\r/g, " "); // get an array of values selected in the bound node var selectedArray = value.split(" "); @@ -401,7 +401,8 @@ @@ -458,7 +459,9 @@