Solved

Problem showing javascript Calendar control using innerHTML property of div tag

Posted on 2009-07-01
6
595 Views
Last Modified: 2012-05-07
I am getting error message while calling a javascript function on dropdown onchange event. The javascript function I called getIndex() is supposed to show jason's calendar control that in turn uses <script> tag using innerHTML property of <div> where I want to show this calendar control with some other HTML tags like <table>. I have tried <script defer> but that didn't helped.
The following error comes while loading this page:

Active Server Pages error 'ASP 0138'
Nested Script Block
/progress/request_search.asp, line 82
A script block cannot be placed inside another script block
<script language="javascript">
function getIndex()
{
var x=document.getElementById("mySelect");
var i=x.selectedIndex;
 
var selval=document.getElementById("frmcreaterequest").mySelect.options[i].value;
 
if (selval==3)
	{
	var sScript="<SCRIPT DEFER>";
	sScript = sScript + "DateInput('txtFromDate',true,'DD-MON-YYYY')";
	sScript = sScript + "</SCRIPT" + ">";
	
	document.getElementById("datearea").innerHTML=sScript;
	document.getElementById("datearea").style.display='block';
	}
	else if (selval==4)
	{
	document.getElementById("datearea").style.display='none';
	}
 
	else if (selval==1)
	{
	document.getElementById("datearea").style.display='none';
	}
 
	else if (selval==2)
	{
	document.getElementById("datearea").style.display='none';
	}
}
 
</script>

Open in new window

0
Comment
Question by:anas_elkhani
  • 5
6 Comments
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 24761124
change
 var sScript="<SCRIPT DEFER>";

to
 var sScript="<SCR"+"IPT>";

0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 24761127
However that is not going to help
Placing a script in innerHTML will not EXECUTE the script
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 24761140
What you are trying to do will not work since the script does a document.write.

Instead we change the document.write of the function to return a string and do



<script language="javascript">
var myString = ""
function getIndex() {
  var x=document.getElementById("mySelect");
  var selval=x.options[x.selectedIndex].value;
  document.getElementById("datearea").style.display='none';
  if (selval!=3) return; // no need to continue
  var myWrite = document.writeln;
  myString = ""
  document.writeln = function(str) {
    myString += str+'\n';
  }
  DateInput('txtFromDate',true,'DD-MON-YYYY');
  document.writeln=myWrite;
  document.getElementById("datearea").innerHTML=myString;
  document.getElementById("datearea").style.display='block';
}
</script>

Open in new window

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 75

Accepted Solution

by:
Michel Plungjan earned 500 total points
ID: 24761174
ACTUALLY we can do it easier:


<div id="datearea" style="display:none">
<script language="text/javascript">
DateInput('txtFromDate',true,'DD-MON-YYYY');
</script>
</div>

and have




<script language="javascript">
function getIndex() {
  var x = document.getElementById("mySelect");
  document.getElementById("datearea").style.display=(x.options[x.selectedIndex].value==3)?'block':'none';
}
</script>

Open in new window

0
 

Author Comment

by:anas_elkhani
ID: 24763399
I used without script tag, but that takes me to another page without anything else except the date control.
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 24764524
Please show exactly what you did
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Open up a popu window in jquery and pass the parameter from the main window 7 7,125
Problem to the codes 3 89
Ecommerce: External Script Audit 6 78
Jquery height() issue 13 158
No single Antivirus application (despite claims by manufacturers) will catch or protect you from all Virus / Malware or Spyware threats. That doesn't stop you from further protecting yourself however - and this article is to show you how.
Read our guide on how to survive being on-call.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

679 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question