Solved

Problem showing javascript Calendar control using innerHTML property of div tag

Posted on 2009-07-01
6
591 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
ScreenConnect 6.0 Free Trial

Discover new time-saving features in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI, app configurations and chat acknowledgement to improve customer engagement!

 
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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Ajax "mind reader" script 11 359
Dropdownlist not working properly 6 69
CRM 2011 Opportunity Bug 18 141
Assess if java script has insecure coding issue 1 122
Read about the importance of offline branding in the digital age.
In this increasingly digital world, security hacks are no longer just a threat, but a reality. As we've witnessed with Target's big identity hack 2013, Heartbleed in 2015, and now Cloudbleed, companies and their leaders need to prepare for the unthiā€¦
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.

831 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