469,347 Members | 1,809 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,347 developers. It's quick & easy.

cleanup a select/options list - remove same items.

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
3 6186
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
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
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.

Similar topics

4 posts views Thread by headware | last post: by
3 posts views Thread by Rob | last post: by
1 post views Thread by Chris Lieb | last post: by
11 posts views Thread by Richard Maher | last post: by
4 posts views Thread by rn5a | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.