When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles [1.x] [2.0]
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips
Search

Sections:
Book Reviews
Sample Chapters
Commonly Asked Message Board Questions
Headlines from ASPWire.com
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
Web Hosts
XML Info
Information:
Advertise
Feedback
Author an Article
Technology Jobs



















internet.com
IT
Developer
Internet News
Small Business
Personal Technology
International

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers
ASP ASP.NET ASP FAQs Message Board Feedback ASP Jobs

The 4 Guys Present: ASPFAQs.com

Jump to a FAQ
Enter FAQ #:
..or see our 10 Most Viewed FAQs.
4GuysFromRolla.com : ASP FAQS : Forms

Question: How can I dynamically change the action of a form?
[Print this FAQ]

Answer: This really isn't an ASP question (since you are using client-side JavaScript), but it's a commonly asked question so I figured it warranted an answer here. Say that we have a form with two buttons, and, depending on the button clicked, we'd like to programmatically set the form's action and submit it. Given the following HTML code for the form:

<FORM NAME="MyFirstForm">
  <INPUT TYPE=TEXT NAME=MyName><BR>
  <INPUT TYPE=BUTTON VALUE="Add" ONCLICK="Add();">
  <INPUT TYPE=BUTTON VALUE="Delete" ONCLICK="Delete();">
</FORM>

All we need to do to alter the form's action is write the Add() and Delete() client-side JavaScript functions:

<SCRIPT LANGUAGE="JavaScript">
<!--
  function Add()
  {
    // alter the action and submit the form
    document.MyFirstForm.action = "AddName.asp";
    document.MyFirstForm.submit();
  }

  function Delete()
  {
    // alter the action and submit the form
    document.MyFirstForm.action = "DeleteName.asp";
    document.MyFirstForm.submit();
  }
// -->
</SCRIPT>

Note that each JavaScript function is comprised of only two lines of code. The first dynamically alters the form's ACTION property and the second actually submits the form. Pretty neat, eh?

Another common request is how to change the form's action based upon a select box's value. To rig this up, all we need to do is wire the select box's ONCHANGE event to a JavaScript function that sets the action property of the form based upon the select box's current value. Given the following HTML code:

<FORM NAME=MyFirstForm ACTION="AddName.asp">
  <INPUT TYPE=TEXT NAME=MyName><BR>
  <SELECT NAME=MySelectBox ONCHANGE="AlterAction();">
    <OPTION SELECTED VALUE="AddName.asp">Add</OPTION>
    <OPTION VALUE="DeleteName.asp">Delete</OPTION>
  </SELECT>
  <P>
  <INPUT TYPE=SUBMIT>
</FORM>

Note that this is strikingly similar to the first code sample. The difference is that instead of using two buttons to determine the action, we are letting the user make a selection via a select box. The only thing left to do is write the client-side JavaScript AlterAction() function. (Note that the form's action is currently set to AddName.asp, which is the default select box option... this is in case the ONCHANGE event doesn't fire (i.e., the user doesn't change the select box values before submitting the form).)

<SCRIPT LANGUAGE="JavaScript">
<!--
  function AlterAction()
  {
    document.MyFirstForm.action =
        document.MyFirstForm.MySelectBox.value;
  }
// -->
</SCRIPT>

There you go! For more information on HTML tags, form elements, and client-side JavaScript coding, be sure to check out http://developer.netscape.com/!


FAQ posted by Scott Mitchell at 9/30/2000 8:55:10 PM to the Forms category. This FAQ has been viewed 92,209 times.

Do you have a FAQ you'd like to suggest? Suggestions? Comments? If so, send it in! Also, if you'd like to be a FAQ Admin (creating/editing FAQs), let me know! If you are looking for other FAQs, be sure to check out the 4Guys FAQ and Commonly Asked Messageboard Questions!

Most Viewed FAQs:

1.) How can I format numbers and date/times using ASP.NET? For example, I want to format a number as a currency. (761643 views)
2.) I am using Access and getting a 80004005 error (or a [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)' error) when trying to open a connection! How can I fix this problem? (207777 views)
3.) How can I convert a Recordset into an array? Also, how can I convert an array into a Recordset? (202549 views)
4.) How can I quickly sort a VBScript array? (196039 views)
5.) How can I find out if a record already exists in a database? If it doesn't, I want to add it. (156019 views)
6.) How do I display data on a web page using arrays instead of Do...While...MoveNext...???... (152331 views)
7.) When I get a list of all files in a directory via the FileSystemObject, they aren't ordered in any reasonable way. How can I sort the files by name? Or by size? Or by date created? Or... (140381 views)
8.) For session variables to work, must the Web visitor have cookies enabled? (110162 views)
9.) Can I send emails without using CDONTS? (107083 views)
10.) How can I take the result of a SELECT...MULTIPLE or a group of same-named checkboxes and turn it into a query? That is, if the user selects 3 answers, how can I construct a query that looks for all 3? (106308 views)
Last computed at 9/17/2007 3:22:00 AM


Windows Internet Technology | ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Whitepapers and eBooks

Intel Whitepaper: Comparing Two- and Four-Socket Platforms for Server Virtualization
IBM Solutions Brief: Go Green With IBM System xTM And Intel
HP eBook: Simplifying SQL Server Management
IBM Contest: Are You the Next Superstar? Join the "Search for the XML Superstar" Contest to Find Out
Microsoft PDF: Top 10 Reasons to Move to Server Virtualization with Hyper-V
Microsoft PDF: Six Reasons Why Microsoft's Hyper-V Will Overtake Vmware
Microsoft Step-by-Step Guide: Hyper-V and Failover Clustering
Intel PDF: Quad-Core Impacts More Than the Data Center
Intel PDF: Virtualization Delivers Data Center Efficiency
Go Parallel Article: PDC 2008 in Review
Microsoft PDF: Top 11 Reasons to Upgrade to Windows Server 2008
Avaya Article: Communication-Enabled Mashups: Empowering Both Business Owners and IT
Intel Whitepaper: Building a Real-World Model to Assess Virtualization Platforms
  PDF: Intel Centrino Duo Processor Technology with Intel Core2 Duo Processor
Microsoft Article: Build and Run Virtual Machines with Hyper-V Server 2008
Go Parallel Article: Q&A with a TBB Junkie
IBM Whitepaper: Innovative Collaboration to Advance Your Business
Internet.com eBook: Real Life Rails
IBM eBook: The Pros and Cons of Outsourcing
Internet.com eBook: Best Practices for Developing a Web Site
IBM CXO Whitepaper: The 2008 Global CEO Study "The Enterprise of the Future"
Avaya Article: Call Control XML in Action - A CCXML Auto Attendant
IBM CXO Whitepaper: Unlocking the DNA of the Adaptable Workforce--The Global Human Capital Study 2008
Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
HP eBook: Guide to Storage Networking
MORE WHITEPAPERS, EBOOKS, AND ARTICLES