Hey - thank for the help.  I'm not much of a java programmer and don't
have access to anyone that is right now.

Incidentally . . . the code being used apparently came straight off of
the Microsoft Knowledge Database about 2 years ago or so I'm told.

-----Original Message-----
From: Chris Tifer [mailto:[EMAIL PROTECTED]] 
Sent: Monday, September 09, 2002 3:25 PM
To: ActiveServerPages
Subject: Re: OT- java problem

Hi Timothy,

Wow! That's some pretty convoluted code you got going on there.

Does your function ONLY look for values that match it and highlight it?
That's what I can determine from it at first glane, but I didn't go too
in-depth
into it because it looks like LOTS of overhead.

If that's ALL it does, or is needed to do, try this function out:

==========================================
<script type="text/javascript" language="javascript">
function findMatchingEl(strFormName, strElName, strSearchString){
 var objForm = document.forms[strFormName]
 var objEl = objForm.elements[strElName]
 var intCount = 0
 strSearchString.toString()
 for(var x = 0; x < objEl.options.length; x++){
  if(strSearchString == objEl.options[x].value.substring(0,
strSearchString.length)){
   objEl.options[x].selected = true
   return true
  }
 }
}
</script>
==========================================

Pass it the form name, the field you want to check through (drop-down
field
obviously) and the value you want it to find.

It'll loop through all the options in that select list, comparing their
values with the value you're looking for. As soon as it find the FIRST
option that matches, it'll exit the function. That'd be easy enough to
switch
around, say if you wanted to go to the LAST item that matches.

As you can see too, it's considerably less code.  As a matter of fact,
it
might even be more compliant too because there's no use of document.all
- an IE-only implementation which I believe has gone by the wayside
through the advent of getElementById()

Hope that helps and that I wasn't too off in what you were trying to do.

Chris Tifer
http://www.emailajoke.com

----- Original Message -----
From: "Gregory Miley" <[EMAIL PROTECTED]>
To: "ActiveServerPages" <[EMAIL PROTECTED]>
Sent: Monday, September 09, 2002 9:09 AM
Subject: RE: OT- java problem


> I would believe you would just have to reverse your search order to
start
> from high and go low... Instead of low to high
>
>
> for (iLow = 0; iHigh = iLow; iLow++){
> // Get the current option
> sTemp = oOptions(iCurrent).value.toUpperCase();
> var sSubstr = sTemp.substr(0, iLength);
>
> if (sSubstr < sInput)
> {
> // Search the upper half of the branch
> iLow = iCurrent + 1;
> }
> else if (sSubstr > sInput)
> {
> // Search the lower half of the branch
> iHigh = iCurrent - 1;
> }
> else
> {
> bFound = true;
> break;
> }
>
> // Pick the middle of the branch again
> iCurrent = Math.floor(iLow + ((iHigh + 1) - iLow) / 2);
>
> }
>
>
> I hate editing other peoples crap so I think im completely wrong cause
I
> don't feel like analyzing this junk. But the basic jist would be to
revers
> the order in which the list is gone through.
>
> Hope that helps at all.... ^_^;
>
> Greg
>
>
> -----Original Message-----
> From: Timothy Owen [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, September 08, 2002 4:42 PM
> To: ActiveServerPages
> Subject: OT- java problem
>
>
> I was asked recently to edit a ASP page that generates the following
HTML
so
> that the drop down was in descending order.  I did that.  It was as
simple
> as editing the SQL statement.  Now a piece of Java code that was
working
to
> allow the user to type in box A to select an item in the dropdown is
not
> working.  If I revert the dropdown to the original ascending sort
order it
> works fine again.  Is there anyone out there that might like to help
with
> this?  Below is the entire original html document.
>
> Html to follow - watch for wrap.
> ////
>
>
> <html>
>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
> <title></title> </head>
>
> <script type="text/javascript" language="javascript">
> function SmartSelect(oInput, oSelect)
> {
> var sInput = String(oInput.value).toUpperCase();
> var iLength = sInput.length;
>
> if (iLength <= 0)
> return -1;
>
> var oOptions = oSelect.options;
> var i, diff, bFound, sTemp;
>
> var iHigh = oOptions.length - 1;
> var iLow = 0;
> var iCurrent = Math.floor((iHigh + 1) / 2);
>
> bFound = false;
> do
> {
> // Get the current option
> sTemp = oOptions(iCurrent).value.toUpperCase();
> var sSubstr = sTemp.substr(0, iLength);
>
> if (sSubstr < sInput)
> {
> // Search the upper half of the branch
> iLow = iCurrent + 1;
> }
> else if (sSubstr > sInput)
> {
> // Search the lower half of the branch
> iHigh = iCurrent - 1;
> }
> else
> {
> bFound = true;
> break;
> }
>
> // Pick the middle of the branch again
> iCurrent = Math.floor(iLow + ((iHigh + 1) - iLow) / 2);
>
> } while (iHigh >= iLow)
>
> // Is there a better prefix match?
> if (iLength < sTemp.length)
> {
> // Store the current old value
> var iOld = iCurrent--;
>
> // Now go back until we find one that doesn't match the
> prefix
> while (iCurrent >= 0)
> {
> // Gone too far -- the prefix no longer matches.
> if
> (oOptions(iCurrent).value.toUpperCase().substr(0, iLength) != sInput)
> break;
>
> iOld = iCurrent--;
> }
>
> iCurrent = iOld;
> }
>
> if (bFound)
> return iCurrent;
> else
> return -1;
> }
>
> function DoIt()
> {
> var i = SmartSelect(document.all("a"), document.all("b"));
> document.all("b").selectedIndex = i;
> }
>
> </script>
> <body style="font-family: helvetica, arial;">
>
> <div align="center">
>   <center>
>   <table border="0" width="600" bgcolor="#F0F0F0">
>     <tr>
>       <td width="100%">
> <form method="POST" action="parts_choose_drawing_review.asp"
> name="FrontPage_Form1" onsubmit="return
FrontPage_Form1_Validator(this)"
> language="JavaScript">
>           <p align="center">Please choose a drawing number to review
parts
> for.<font size="2"></font></p>
>           <div align="center">
>             <center>
>             <table border="0" width="80%">
>               <tr>
>                 <td width="100%">
>                   <table border="0" width="100%">
>                     <tr>
>                       <td width="100%" colspan="2" valign="top">
>                         <p align="center">
>                         <select size="1" name="drawing_number" id="b">
>                     <option value="Please Choose">Please
Choose</option>
>
>                     <option value="4550">4550</option>
>
>                     <option value="4549">4549</option>
>
>                     <option value="4548">4548</option>
>
>                     <option value="4547">4547</option>
>
>                     <option value="4546">4546</option>
>
>                     <option value="4545">4545</option>
>
>                     <option value="4544">4544</option>
>
>                     <option value="4543">4543</option>
>
>                     <option value="4542">4542</option>
>
>                     <option value="4541">4541</option>
>
>                     <option value="4540">4540</option>
>
>                     <option value="4539">4539</option>
>
>                     <option value="4538">4538</option>
>
>                     <option value="4537">4537</option>
>
>                     <option value="4536">4536</option>
>
>                     <option value="4535">4535</option>
>
>                     <option value="4534">4534</option>
>
>                     <option value="4533">4533</option>
>
>                     <option value="4532">4532</option>
>
>                     <option value="4531">4531</option>
>
>                     <option value="4530">4530</option>
>
>                     <option value="4529">4529</option>
>
>                     <option value="4528">4528</option>
>
>                     <option value="4527">4527</option>
>
>                     <option value="4526">4526</option>
>
>                     <option value="4525">4525</option>
>
>                     <option value="4524">4524</option>
>
>                     <option value="4523">4523</option>
>
>                     <option value="4522">4522</option>
>
>                     <option value="4521">4521</option>
>
>                     <option value="4520">4520</option>
>
>                     <option value="4519">4519</option>
>
>                     <option value="4518">4518</option>
>
>                     <option value="4517">4517</option>
>
>                     <option value="4516">4516</option>
>
>                     <option value="4515">4515</option>
>
>                     <option value="4514">4514</option>
>
>                     <option value="4513">4513</option>
>
>                     <option value="4512">4512</option>
>
>                     <option value="4511">4511</option>
>
>                     <option value="4510">4510</option>
>
>                     <option value="4509">4509</option>
>
>                     <option value="4508">4508</option>
>
>                     <option value="4507">4507</option>
>
>                     <option value="4506">4506</option>
>
>                     <option value="4505">4505</option>
>
>                     <option value="4504">4504</option>
>
>                     <option value="4503">4503</option>
>
>                     <option value="4502">4502</option>
>
>                     <option value="4501">4501</option>
>
>                     <option value="4500">4500</option>
>
>                     <option value="4499">4499</option>
>
>                     <option value="4498">4498</option>
>
>                     <option value="4497">4497</option>
>
>                     <option value="4496">4496</option>
>
>                     <option value="4495">4495</option>
>
>                     <option value="4494">4494</option>
>
>                     <option value="4493">4493</option>
>
>                     <option value="4492">4492</option>
>
>                   </select></td>
>                     </tr>
>                     <tr>
>                       <td width="50%" valign="top"></td>
>                       <td width="50%" valign="top"></td>
>                     </tr>
>                     <tr>
>                       <td width="50%" valign="top"><b><font
size="2">Quick
>                         finder:</font></b><br>
>                         <font size="1">Enter the drawing number that
you
are
>                         looking for here.&nbsp; If the drawing number
is
> valid
>                         it will appear in the dropdown box
above.&nbsp;
Once
> you
>                         have located the proper drawing number, press
> submit.</font></td>
>                       <td width="50%" valign="top">
>                 <input type="test" id="a" onkeyup="DoIt()"
size="20"></td>
>                     </tr>
>                   </table>
>                 </td>
>               </tr>
>             </table>
>             </center>
>           </div>
>   </center>
>         <p align="right"><input type="submit" value="Submit"
> name="Submit"></p>
>       </form>
>     </td>
>     </tr>
>   <center>
>     </table>
>   </center>
> </div>
> </body>
> </html>
>
>
> ---
> You are currently subscribed to activeserverpages as:
[EMAIL PROTECTED]
To
> unsubscribe send a blank email to
> %%email.unsub%%
>
> ---
> You are currently subscribed to activeserverpages as:
[EMAIL PROTECTED]
> To unsubscribe send a blank email to
%%email.unsub%%


---
You are currently subscribed to activeserverpages as:
[EMAIL PROTECTED]
To unsubscribe send a blank email to
%%email.unsub%%


---
You are currently subscribed to activeserverpages as: [email protected]
To unsubscribe send a blank email to [EMAIL PROTECTED]

Reply via email to