469,883 Members | 1,135 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

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

How to loop through FORM elements?

The following code will allow me to loop through FORM tags but not the
elements in them. I may have five forms on one page. How do I loop through
form elements in the forth FORM?

private SHDocVw.InternetExplorer IE_Inst = new
SHDocVw.InternetExplorerClass();
.....
mshtml.IHTMLDocument2 HTMLDocument =
(mshtml.IHTMLDocument2) this.IE_Inst.Document;
mshtml.IHTMLElementCollection forms = HTMLDocument.forms;

foreach (mshtml.HTMLFormElementClass el in forms)
{

strType = el.outerHTML;
}

Once I'm in a particular FORM, I want to find certain input fields and fill
in values.

Thanks,
Brett
Nov 17 '05 #1
2 13196

"Brett" <no@spam.com> wrote in message
news:OU**************@TK2MSFTNGP14.phx.gbl...
The following code will allow me to loop through FORM tags but not the
elements in them. I may have five forms on one page. How do I loop
through form elements in the forth FORM?

private SHDocVw.InternetExplorer IE_Inst = new
SHDocVw.InternetExplorerClass();
....
mshtml.IHTMLDocument2 HTMLDocument =
(mshtml.IHTMLDocument2) this.IE_Inst.Document;
mshtml.IHTMLElementCollection forms = HTMLDocument.forms;

foreach (mshtml.HTMLFormElementClass el in forms)
{

strType = el.outerHTML;
}

Once I'm in a particular FORM, I want to find certain input fields and
fill in values.

Thanks,
Brett


I'm currently getting around the problem by looping through all elements in
the Doc:

foreach (mshtml.IHTMLElement wbrElm in wbrAll)
{
// Assign the inner html values of the input to our variables
//look for only INPUT types
if(wbrElm.tagName.ToLower() == "input" &&
wbrElm.outerHTML.IndexOf("name", 1) > 0)
{
strName = wbrElm.getAttribute("name", 0).ToString();
Debug.WriteLine(wbrElm.tagName.ToLower() + " -- " + wbrElm.outerHTML);
// We are only interested in filling text boxes,
// and only interested in a specific one, i.e. "q"

if (strName != null && strName.ToLower() == userNameFormField)
// Set the "value" with the setAttribute method.
wbrElm.setAttribute("value", userNameValue, 0);
if (strName != null && strName.ToLower() == passwordFormField)
// Set the "value" with the setAttribute method.
wbrElm.setAttribute("value", passwordValue, 0);
}
} //end for each

Not the best technique.

Brett
if (strName != null && strName.ToLower() == passwordFormField)
// Set the "value" with the setAttribute method.
wbrElm.setAttribute("value", passwordValue, 0);
}
} //end for each
Nov 17 '05 #2
Hi,

Is this in the client side? if so you better use javascript , this code
could give you an idea

for(int i =0 ; i < document.forms[3].elements.length; i ++ )
alert( document.forms[3].elements[i].tagName );

note that I did not test it, so it may have errors
cheers,

--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation


"Brett" <no@spam.com> wrote in message
news:ub**************@tk2msftngp13.phx.gbl...

"Brett" <no@spam.com> wrote in message
news:OU**************@TK2MSFTNGP14.phx.gbl...
The following code will allow me to loop through FORM tags but not the
elements in them. I may have five forms on one page. How do I loop
through form elements in the forth FORM?

private SHDocVw.InternetExplorer IE_Inst = new
SHDocVw.InternetExplorerClass();
....
mshtml.IHTMLDocument2 HTMLDocument =
(mshtml.IHTMLDocument2) this.IE_Inst.Document;
mshtml.IHTMLElementCollection forms = HTMLDocument.forms;

foreach (mshtml.HTMLFormElementClass el in forms)
{

strType = el.outerHTML;
}

Once I'm in a particular FORM, I want to find certain input fields and
fill in values.

Thanks,
Brett


I'm currently getting around the problem by looping through all elements
in the Doc:

foreach (mshtml.IHTMLElement wbrElm in wbrAll)
{
// Assign the inner html values of the input to our variables
//look for only INPUT types
if(wbrElm.tagName.ToLower() == "input" &&
wbrElm.outerHTML.IndexOf("name", 1) > 0)
{
strName = wbrElm.getAttribute("name", 0).ToString();
Debug.WriteLine(wbrElm.tagName.ToLower() + " -- " +
wbrElm.outerHTML);
// We are only interested in filling text boxes,
// and only interested in a specific one, i.e. "q"

if (strName != null && strName.ToLower() == userNameFormField) // Set
the "value" with the setAttribute method.
wbrElm.setAttribute("value", userNameValue, 0);
if (strName != null && strName.ToLower() == passwordFormField) // Set
the "value" with the setAttribute method.
wbrElm.setAttribute("value", passwordValue, 0);
}
} //end for each

Not the best technique.

Brett
if (strName != null && strName.ToLower() == passwordFormField) // Set
the "value" with the setAttribute method.
wbrElm.setAttribute("value", passwordValue, 0);
}
} //end for each

Nov 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Jeremy Langworthy | last post: by
1 post views Thread by Randi | last post: by
1 post views Thread by Dave R | last post: by
3 posts views Thread by brett | last post: by
6 posts views Thread by Ed Jay | last post: by
12 posts views Thread by usa-99 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.