By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,758 Members | 1,250 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,758 IT Pros & Developers. It's quick & easy.

cleanup a select/options list - remove same items.

P: n/a
I hope that someone can help me with the following:

Short background explenation:
I have a shrfepoint page (newform.aspx) in a item list. On this page is
a lookup column that displays a lookup of all category items in
previous items. In the code this results in a select/options list like
this:

<SELECT TABINDEX=1
NAME="urn:schemas-microsoft-com:office:office#CatLookup"><OPTION
Value="">(None)</OPTION><OPTION VALUE="8">name 1</OPTION><OPTION
VALUE="10">name 2</OPTION>><OPTION VALUE="11">name 1</OPTION></SELECT>

Is there a way to clean-up or rewrite this select list before it is
published and remove the double entry using javascript?

Jan 21 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Beholder wrote:
Short background explenation:
I have a shrfepoint page (newform.aspx) in a item list. On this page is
a lookup column that displays a lookup of all category items in
previous items. In the code this results in a select/options list like
this:

<SELECT TABINDEX=1
NAME="urn:schemas-microsoft-com:office:office#CatLookup"><OPTION
Value="">(None)</OPTION><OPTION VALUE="8">name 1</OPTION><OPTION
VALUE="10">name 2</OPTION>><OPTION VALUE="11">name 1</OPTION></SELECT>

Is there a way to clean-up or rewrite this select list before it is
published and remove the double entry using javascript?
To clean up:

-----------------------------------------

<form>
<select tabindex="1"
name="urn:schemas-microsoft-com:office:office#CatLookup">
<option value="">(None)</option>
<option value="8">name 1</option>
<option value="10">name 2</option>
<option value="11">name 1</option>
</select>
</form>
<script type="text/javascript">
var S =
document.forms[0].elements['urn:schemas-microsoft-com:office:office#CatLookup'];
while (S.options.length) S.options[0] = null;
</script>

-----------------------------------------

To rewrite the options "without double entries":

-----------------------------------------

<form>
<select tabindex="1"
name="urn:schemas-microsoft-com:office:office#CatLookup">
<option value="">(None)</option>
<option value="8">name 1</option>
<option value="10">name 2</option>
<option value="11">name 1</option>
</select>
<input type=submit>
</form>
<script type="text/javascript">
var N = new Object();
var S =
document.forms[0].elements['urn:schemas-microsoft-com:office:office#CatLookup'];
while (S.options.length) {
if (!N[S.options[0].text]) N[S.options[0].text] = S.options[0].value;
S.options[0] = null;
}
for (i in N) S.options[S.length] = new Option(i,N[i]);
</script>

-----------------------------------------

I define "removing double entries" as "removing options with the same
text" which is probably what you meant. The usual naming is <option
value="[VALUE]">[TEXT]</option>. The criterium that is used to remove
is not case sensitive.

When deleting a double entry, the one that comes first is kept with its
(albeit unique) value. If you want the last one to be kept, change
if (!N[S.options[0].text]) N[S.options[0].text] = S.options[0].value;
into
N[S.options[0].text] = S.options[0].value;

Do you really need a name as
"urn:schemas-microsoft-com:office:office#CatLookup" for the select ? I
would counsel to change it into something shorter and more
alphanumericaloid.

There is a syntax error in your code at the double >(at </OPTION>>).

Hope this helps,

--
Bart

Jan 22 '07 #2

P: n/a
Thank you Bart,

I will try your suggestions asap. Thanks for your clear comments and
suggestions.

As for the select name, this is the default naming which is used by
sharepoint. It has given me a hard time too when taking this nam up in
ie javascript code. It cannot be changed.

Bart Van der Donck schreef:
Beholder wrote:
Short background explenation:
I have a shrfepoint page (newform.aspx) in a item list. On this page is
a lookup column that displays a lookup of all category items in
previous items. In the code this results in a select/options list like
this:

<SELECT TABINDEX=1
NAME="urn:schemas-microsoft-com:office:office#CatLookup"><OPTION
Value="">(None)</OPTION><OPTION VALUE="8">name 1</OPTION><OPTION
VALUE="10">name 2</OPTION>><OPTION VALUE="11">name 1</OPTION></SELECT>

Is there a way to clean-up or rewrite this select list before it is
published and remove the double entry using javascript?

To clean up:

-----------------------------------------

<form>
<select tabindex="1"
name="urn:schemas-microsoft-com:office:office#CatLookup">
<option value="">(None)</option>
<option value="8">name 1</option>
<option value="10">name 2</option>
<option value="11">name 1</option>
</select>
</form>
<script type="text/javascript">
var S =
document.forms[0].elements['urn:schemas-microsoft-com:office:office#CatLookup'];
while (S.options.length) S.options[0] = null;
</script>

-----------------------------------------

To rewrite the options "without double entries":

-----------------------------------------

<form>
<select tabindex="1"
name="urn:schemas-microsoft-com:office:office#CatLookup">
<option value="">(None)</option>
<option value="8">name 1</option>
<option value="10">name 2</option>
<option value="11">name 1</option>
</select>
<input type=submit>
</form>
<script type="text/javascript">
var N = new Object();
var S =
document.forms[0].elements['urn:schemas-microsoft-com:office:office#CatLookup'];
while (S.options.length) {
if (!N[S.options[0].text]) N[S.options[0].text] = S.options[0].value;
S.options[0] = null;
}
for (i in N) S.options[S.length] = new Option(i,N[i]);
</script>

-----------------------------------------

I define "removing double entries" as "removing options with the same
text" which is probably what you meant. The usual naming is <option
value="[VALUE]">[TEXT]</option>. The criterium that is used to remove
is not case sensitive.

When deleting a double entry, the one that comes first is kept with its
(albeit unique) value. If you want the last one to be kept, change
if (!N[S.options[0].text]) N[S.options[0].text] = S.options[0].value;
into
N[S.options[0].text] = S.options[0].value;

Do you really need a name as
"urn:schemas-microsoft-com:office:office#CatLookup" for the select ? I
would counsel to change it into something shorter and more
alphanumericaloid.

There is a syntax error in your code at the double >(at </OPTION>>).

Hope this helps,

--
Bart
Jan 22 '07 #3

P: n/a
After days of searching and reading about javascript, you just made my
day <big smile>

It works.

Thansk you so much...

Peter
Beholder schreef:
Thank you Bart,

I will try your suggestions asap. Thanks for your clear comments and
suggestions.

As for the select name, this is the default naming which is used by
sharepoint. It has given me a hard time too when taking this nam up in
ie javascript code. It cannot be changed.

Bart Van der Donck schreef:
Beholder wrote:
Short background explenation:
I have a shrfepoint page (newform.aspx) in a item list. On this page is
a lookup column that displays a lookup of all category items in
previous items. In the code this results in a select/options list like
this:
>
<SELECT TABINDEX=1
NAME="urn:schemas-microsoft-com:office:office#CatLookup"><OPTION
Value="">(None)</OPTION><OPTION VALUE="8">name 1</OPTION><OPTION
VALUE="10">name 2</OPTION>><OPTION VALUE="11">name 1</OPTION></SELECT>
>
Is there a way to clean-up or rewrite this select list before it is
published and remove the double entry using javascript?
To clean up:

-----------------------------------------

<form>
<select tabindex="1"
name="urn:schemas-microsoft-com:office:office#CatLookup">
<option value="">(None)</option>
<option value="8">name 1</option>
<option value="10">name 2</option>
<option value="11">name 1</option>
</select>
</form>
<script type="text/javascript">
var S =
document.forms[0].elements['urn:schemas-microsoft-com:office:office#CatLookup'];
while (S.options.length) S.options[0] = null;
</script>

-----------------------------------------

To rewrite the options "without double entries":

-----------------------------------------

<form>
<select tabindex="1"
name="urn:schemas-microsoft-com:office:office#CatLookup">
<option value="">(None)</option>
<option value="8">name 1</option>
<option value="10">name 2</option>
<option value="11">name 1</option>
</select>
<input type=submit>
</form>
<script type="text/javascript">
var N = new Object();
var S =
document.forms[0].elements['urn:schemas-microsoft-com:office:office#CatLookup'];
while (S.options.length) {
if (!N[S.options[0].text]) N[S.options[0].text] = S.options[0].value;
S.options[0] = null;
}
for (i in N) S.options[S.length] = new Option(i,N[i]);
</script>

-----------------------------------------

I define "removing double entries" as "removing options with the same
text" which is probably what you meant. The usual naming is <option
value="[VALUE]">[TEXT]</option>. The criterium that is used to remove
is not case sensitive.

When deleting a double entry, the one that comes first is kept with its
(albeit unique) value. If you want the last one to be kept, change
if (!N[S.options[0].text]) N[S.options[0].text] = S.options[0].value;
into
N[S.options[0].text] = S.options[0].value;

Do you really need a name as
"urn:schemas-microsoft-com:office:office#CatLookup" for the select ? I
would counsel to change it into something shorter and more
alphanumericaloid.

There is a syntax error in your code at the double >(at </OPTION>>).

Hope this helps,

--
Bart
Jan 22 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.