Smudger
Smudger

Reputation: 10771

javascript submit not submitting

I have the following in my head:

<SCRIPT>
function submitFunction(i) {
   if (i==1) {
    alert('1');
    document.sales_order_details.action="/sales/_order";
    document.sales_order_details.submit()
    } 
    if (i==2) {
      alert('2');
      document.sales_order_details.action="/sales/delete_order";
      document.sales_order_details.submit()
    }
   }
</SCRIPT>

and the following in my body:

<form id="sales_order_details" action="/sales/delete_order" method="post">
<INPUT TYPE="button" VALUE="Edit Order" onClick="submitFunction(1)">
<INPUT TYPE="button" VALUE="Delete Order" onClick="submitFunction(2)">
</form>

The alert for '2' or '1' shows correctly but the form does not submit.

any advice.

Thanks

Upvotes: 0

Views: 69

Answers (3)

Derek Henderson
Derek Henderson

Reputation: 9706

Change

document.sales_order_details.submit()

to

document.forms['sales_order_details'].submit();

and your form will submit correctly.

Upvotes: 1

Sridhar
Sridhar

Reputation: 1962

You have accessed the java script object hierarchy wrongly. after document you should access form to get your code work see the following: And you should use name attribute in form tag to work this code.

<SCRIPT>
function submitFunction(i) {
   if (i==1) {
    alert('1');
    document.form.sales_order_details.action="/sales/_order";
    document.form.sales_order_details.submit()
    } 
    if (i==2) {
      alert('2');
      document.form.sales_order_details.action="/sales/delete_order";
      document.form.sales_order_details.submit()
    }
   }
</SCRIPT>

the html form:

<form name="sales_order_details" action="/sales/delete_order" method="post">
<INPUT TYPE="button" VALUE="Edit Order" onClick="submitFunction(1)">
<INPUT TYPE="button" VALUE="Delete Order" onClick="submitFunction(2)">
</form>

Or:

you could use the form index number to access the form object in javascript. like document.form[0].action

Upvotes: 1

Dimitar Dimitrov
Dimitar Dimitrov

Reputation: 15138

Try this in your javascript function instead:

function submitFunction(i) {
    var form = document.getElementById('sales_order_details');

    if (i == 1)
        form.action = "/sales/_order";
    else if (i == 2)
        form.action = "/sales/delete_order";

    form.submit();
}

Upvotes: 1

Related Questions