document.form.submit()

C

Chris

Heres my problem:

<a href="javascript:void(document.buysell.submit())" target="_parent"
onMouseOver="MM_swapImage('members','','images/membersf2.gif',1)"
onMouseOut="MM_swapImgRestore()"><img src="images/members.gif"
alt="Back to members page" name="members" width="270" height="25"
border="0"></a>

I get the error "document.buysell" is null or not an object, but my
form name is buysell and when using the submit button, which is not
called "submit", everything submits fine....
please help,
Chris.
 
E

Evertjan.

Chris wrote on 16 dec 2003 in comp.lang.javascript:
<a href="javascript:void(document.buysell.submit())" target="_parent"
onMouseOver="MM_swapImage('members','','images/membersf2.gif',1)"
onMouseOut="MM_swapImgRestore()"><img src="images/members.gif"
alt="Back to members page" name="members" width="270" height="25"
border="0"></a>

I get the error "document.buysell" is null or not an object, but my
form name is buysell and when using the submit button, which is not
called "submit", everything submits fine....

document.forms.buysell.submit()

I would put the target declaration in the <form >
and use no <a> at all:

<img
onclick="document.forms.buysell.submit()"
onMouseOver="..."
onMouseOut="..."
src="images/members.gif"
alt="Back to members page"
name="members" id="members"
width="270" height="25"
 
K

kaeli

Heres my problem:

<a href="javascript:void(document.buysell.submit())"

First of all, void is just that - void. No params.
If you MUST use this because you have to support old browsers, use
<a href="javascript:document.forms["buysell"].submit();

If you support only newer browsers, do this the right way.
<a href="#" onClick="document.forms['buysell'].submit;return false;"

Keep in mind about 5% of US users in general (last I read on some IT
site, anyway) do not have JS enabled browsers. For them, this will not
submit any form at all. You should really have something in that href
for people with no JS if this is for an internet site.
target="_parent"
onMouseOver="MM_swapImage('members','','images/membersf2.gif',1)"
onMouseOut="MM_swapImgRestore()"><img src="images/members.gif"
alt="Back to members page" name="members" width="270" height="25"
border="0"></a>

I get the error "document.buysell" is null or not an object, but my
form name is buysell and when using the submit button, which is not
called "submit", everything submits fine....


I notice you reference "parent" as the target. Is the form on the same
page as this script? If not, you should reference it as
top.frames["framename"].document.forms["formname"]
to be sure the script can "see" it.

--
--
~kaeli~
Murphy's Law #2000: If enough data is collected, anything
may be proven by statistical methods.
http://www.ipwebdesign.net/wildAtHeart
http://www.ipwebdesign.net/kaelisSpace
 
G

Grant Wagner

Chris said:
Heres my problem:

<a href="javascript:void(document.buysell.submit())" target="_parent"
onMouseOver="MM_swapImage('members','','images/membersf2.gif',1)"
onMouseOut="MM_swapImgRestore()"><img src="images/members.gif"
alt="Back to members page" name="members" width="270" height="25"
border="0"></a>

I get the error "document.buysell" is null or not an object, but my
form name is buysell and when using the submit button, which is not
called "submit", everything submits fine....
please help,
Chris.

If you want something that looks like a link to submit a form, I
recommend:

<style type="text/css">
..submitLink {
background-color: transparent;
padding: 8px;
border: 0px solid transparent;
color: Blue;
text-decoration: underline;
cursor: pointer;
cursor: hand;
}
..submitLink:active {
border: 0px solid transparent;
color: Red;
}
}
</style>
<form>
<input type="submit" name="submitBtn" value="Order" class="submitLink" />

</form>

Certainly it isn't as pretty in Netscape 4 or Opera 6, but it's
guaranteed to give you a usable submit button regardless of the browser
being used (presuming the browser supports form and form submission).

By the way, Opera 7.23 is *still* having problems with this design. With
7.23, it now honors border requests on buttons, but it honors neither the
cursor: nor the text-decoration: directives. Also, Opera 7.23 seems to
support the :active pseudo-class, at least partially, it makes a valiant
attempt to honor the border: directive, but it fails to do it correctly.

--
| Grant Wagner <[email protected]>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-developer/upgrade_2.html
 
G

Grant Wagner

Grant said:
padding: 8px;

Remove this, I was just seeing if padding made a difference to Opera showing
text-decoration: and left it in when I posted.

--
| Grant Wagner <[email protected]>

* Client-side Javascript and Netscape 4 DOM Reference available at:
* http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/frames.html
* Internet Explorer DOM Reference available at:
* http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp
* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-developer/upgrade_2.html
 
@

@SM

Grant Wagner a ecrit :
If you want something that looks like a link to submit a form, I
recommend:

<style type="text/css">
.submitLink {
background-color: transparent;
padding: 8px;
border: 0px solid transparent;
color: Blue;
text-decoration: underline;
cursor: pointer;
cursor: hand;
}
.submitLink:active {
border: 0px solid transparent;
color: Red;
}
}
</style>
<form>
<input type="submit" name="submitBtn" value="Order" class="submitLink" />

</form>

Certainly it isn't as pretty in Netscape 4

over all in NN4
who don't know "transparent" and display a black color ! ! !
By chance (or lucky) NN4 don't accept css on a button.

so use :

..submitLink {
padding: 8px;
border: 0;
color: blue;
text-decoration: underline;
cursor: pointer;
cursor: hand;
}
..submitLink:active {
/* border is the same and herited from above */
color: Red;
}

guaranteed to give you a usable submit button regardless of the browser
being used (presuming the browser supports form and form submission).

-- ----
@SM
move away *OTEZ-MOI* from my reply url
 
@

@SM

Chris a ecrit :
Heres my problem:

<a href="javascript:void(document.buysell.submit())" target="_parent"

<a href="javascript:void()" target="_parent"

or

<a href="document.forms['buysell'].submit" target="_parent"
onclick="return false;">

I hope you want to replace the framed page displayed in
main window ?

Anyway, with these 3 codes anything will happen...
(except on 2nd if JS is disabled)

to get something :

<a href="#" target="_parent"
onclick="document.forms['buysell'].target='frame2';
document.forms['buysell'].submit(); return false;">


-- -----
@SM
move away *OTEZ-MOI* from my reply url
 
C

Chris

kaeli said:
Heres my problem:

<a href="javascript:void(document.buysell.submit())"

First of all, void is just that - void. No params.
If you MUST use this because you have to support old browsers, use
<a href="javascript:document.forms["buysell"].submit();

If you support only newer browsers, do this the right way.
<a href="#" onClick="document.forms['buysell'].submit;return false;"

Keep in mind about 5% of US users in general (last I read on some IT
site, anyway) do not have JS enabled browsers. For them, this will not
submit any form at all. You should really have something in that href
for people with no JS if this is for an internet site.
target="_parent"
onMouseOver="MM_swapImage('members','','images/membersf2.gif',1)"
onMouseOut="MM_swapImgRestore()"><img src="images/members.gif"
alt="Back to members page" name="members" width="270" height="25"
border="0"></a>

I get the error "document.buysell" is null or not an object, but my
form name is buysell and when using the submit button, which is not
called "submit", everything submits fine....


I notice you reference "parent" as the target. Is the form on the same
page as this script? If not, you should reference it as
top.frames["framename"].document.forms["formname"]
to be sure the script can "see" it.

--


ok so the form submits, well not really because its not updating data
so really the form is just refreshing... any ideas?
 
K

kaeli

ok so the form submits, well not really because its not updating data
so really the form is just refreshing... any ideas?

Then how do you know it isn't a problem on the server side?

The default action for a form is to submit to itself. Do you have an
action defined?

--
 
G

Grant Wagner

@SM said:
Grant Wagner a ecrit :

over all in NN4
who don't know "transparent" and display a black color ! ! !
By chance (or lucky) NN4 don't accept css on a button.

In Netscape 4.78, I get a standard grey button with underlined text. Netscape
4.x certainly does honor a number of CSS attributes on <input> elements, and
does it consistently (although some of the behaviour is certainly not what you
would expect, it is consistent between Netscape 4.6x/4.7x clients, at least in
my experience).
so use :

.submitLink {
padding: 8px;

Remove this, it was part of testing to see if some aspect of the button was
preventing "text-decoration: underline;" from working properly in Opera 7.23.
border: 0;
color: blue;
text-decoration: underline;
cursor: pointer;
cursor: hand;
}

"border: 0;" doesn't properly suppress the border in Opera 7.23. In fact,
neither does "border: none;", which is why I went with "border: 0px solid
transparent;". Which specific version of Netscape 4.x doesn't render this
correctly? I'd like to install it and use it for testing.
.submitLink:active {
/* border is the same and herited from above */

Yes, it was included inadvertently from testing I was doing trying to suppress
the border in Opera 7.23 when the button is pressed, it should have been
removed in the final version.
color: Red;
}

You know, considering how "standards compliant" Opera claims to be, it
certainly doesn't deal with some of these CSS issues even as adeptly as IE.

--
| Grant Wagner <[email protected]>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-developer/upgrade_2.html
 
@

@SM

Grant Wagner a ecrit :

Some very interesting things.

I wanted only to precise :

My NN is NC 4.5 (on old Mac system 8.6)
so, I can't see what you say.

Opera I can use is 6,03 (not more)
it is an horror !

IE is 5.0 (a fiew better and badder than same on PC)
 
C

Chris

kaeli said:
Then how do you know it isn't a problem on the server side?

The default action for a form is to submit to itself. Do you have an
action defined?

--

because i am doing the server side code...
the form submits data fine when clicking the submit button...
I got document.forms['formname'].submit() to work for the form, but on
other forms it does not because there target is not "_parent" ...
 
K

kaeli

because i am doing the server side code...
the form submits data fine when clicking the submit button...
I got document.forms['formname'].submit() to work for the form, but on
other forms it does not because there target is not "_parent" ...

So specify the target in the form, not the javascript.

--
 
T

Thomas 'PointedEars' Lahn

kaeli said:
First of all, void is just that - void. No params.

This is utter nonsense. It is the `void' special unary operator.
Its operand may be a paranthesed expression.
If you MUST use this because you have to support old browsers, use
<a href="javascript:document.forms["buysell"].submit();

Using the `void' operator is correct here since the `submit()' method
could return a value which replaces then the current document. *Not*
using it is bordering to incorrect here, considering the intended use
of the `javascript:' URI scheme: To use the return value of an
expression as contents of a temporary HTML document.

http://devedge.netscape.com/library/manuals/2000/javascript/1.5/guide/expr.html#1012081


PointedEars
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top