newbie: insertBefore, Invalid Argument error

J

Jeff

Hey

I'm trying to use javascript to dynamically add text to the web page. It
should work like this: The user tryes to click on a link in the web page.
The link executes a javascript method, which checks if a hidden html field
has a value. If that hidden field has no value then the javascript should
display a message (not using alert, but insert a html element into the code)
on the web page telling the user that he need to save the form before
clicking on that link..

Below is the approach I've tryed to solve this by... I just posted the code
I have problem with... the check if the hidden field has a value etc is
working okay, so I didn't post it... if you need to see that code too, just
tell me and I'll post that too.

This javascript gives an Invalid Argument error

This is the html code the javascript below are trying to insert an element
before
<div id="error"></div>

var oNewP = document.createElement("div");
var oText = document.createTextNode("Hello World");
oNewP.appendChild(oText);
var v1 = document.getElementById("error");
document.body.insertBefore(oNewP, v1);

Any suggestions?

Best Regards

Jeff
 
R

RobG

Hey

I'm trying to use javascript to dynamically add text to the web page. It
should work like this: The user tryes to click on a link in the web page.
The link executes a javascript method, which checks if a hidden html field
has a value. If that hidden field has no value then the javascript should
display a message (not using alert, but insert a html element into the code)
on the web page telling the user that he need to save the form before
clicking on that link..

Below is the approach I've tryed to solve this by... I just posted the code
I have problem with... the check if the hidden field has a value etc is
working okay, so I didn't post it... if you need to see that code too, just
tell me and I'll post that too.

This javascript gives an Invalid Argument error

This is the html code the javascript below are trying to insert an element
before
<div id="error"></div>

var oNewP = document.createElement("div");
var oText = document.createTextNode("Hello World");
oNewP.appendChild(oText);
var v1 = document.getElementById("error");
document.body.insertBefore(oNewP, v1);

Any suggestions?

v1 probably isn't a direct child of the body. Try:

v1.parentNode.insertBefore(oNewP, v1);
 
J

Jeff

RobG said:
v1 probably isn't a direct child of the body. Try:

v1.parentNode.insertBefore(oNewP, v1);

Thanks, now the "Hello World" is displayed when this code is executed. but
just one more thing.. I want the Hello World to be displayed with red text
centered on the screen also:
var oNewP = document.createElement('div style="color:red;
text-align:center;"');
var oText = document.createTextNode("Hello World");
oNewP.appendChild(oText);
var v1 = document.getElementById("error");
v1.parentNode.insertBefore(oNewP, v1);

But this code generate this error:
"Unexpected call to method or property access", in my opinion that error is
related to
var oNewP = document.createElement('div style="color:red;
text-align:center;"');

Any suggestions?
 
T

Toby Inkster

Jeff said:
var oNewP = document.createElement('div style="color:red;
text-align:center;"');

var oNewP = document.createElement('div');
oNewP.style.color = 'red';
oNewP.style.textAlign = 'center';
 

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

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top