PRB: Form Does Not Work When Using DTCs with Nested <FORM> Tags (191969)



The information in this article applies to:

  • Microsoft Visual InterDev 6.0

This article was previously published under Q191969

SYMPTOMS

When you manually add <FORM></FORM> tags to an Active Server Pages (ASP) page, then drag and drop a text box DTC (or any other form-related DTC) on your page, and enable the Scripting Object Model, your form does not return any values.

CAUSE

The following dialog box appears when you drag and drop a textbox DTC (or any other form related design-time control (DTC) onto an Active Server Pages (ASP) page:

The design-time control requires the Visual InterDev Scripting Object Model. Would you like to enable the Scripting Object Model for this page?

Yes No Help

When you select Yes it will automatically add the following two script blocks to your Active Server Pages (ASP) page (marked with dark gray background in Visual InterDev):
   <% ' VI 6.0 Scripting Object Model Enabled %>
   <!--#include file="_ScriptLibrary/pm.asp"-->
   <% if StartPageProcessing() Then Response.End() %>
   <FORM name=thisForm METHOD=post>

   <% ' VI 6.0 Scripting Object Model Enabled %>
   <% EndPageProcessing() %>
   </FORM>
				
The first script block gets added between the <%@ Language=VBScript %> and <HTML> tags, the second script block gets added between the </BODY> and </HTML> tags.

When enabled, the Scripting Object Model wraps the entire page in an HTML form. Which means if you add (or have already added) a form to the page, your Web browser will ignore the nested form and any data within it.

NOTE: Nested forms are not valid HTML, and therefore the form isn't processed properly when previewing it.

RESOLUTION

Remove the form tags on the page that are not used by the Scripting Object Model.

STATUS

This behavior is by design.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a new ASP page and add the <FORM></FORM> tags manually.
  2. Drag and drop a DTC Textbox on to the page and name it Textbox1.
  3. When presented with the dialog box asking if you would like to enable the Scripting Object Model, choose Yes.
  4. Add the following code to the page:
    
          <%function Textbox1_onchange()
          Response.Write Textbox1.value
          end function%>
          
    						
  5. Preview the page, then enter data into the textbox and commit it.
Result: Nothing gets returned.

Modification Type:MinorLast Reviewed:3/7/2005
Keywords:kbCtrl kbprb KB191969