?
Solved

Problem showing javascript Calendar control using innerHTML property of div tag

Posted on 2009-07-01
6
Medium Priority
?
611 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 75

Accepted Solution

by:
Michel Plungjan earned 2000 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

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

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

Check out the latest tech news, community articles, and expert highlights in August's newsletter.
We are witnesses that everyone is saying that our children shouldn't "play" with a technology because it is dangerous. This article is going to prove that they are wrong.
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Suggested Courses

770 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