在PHP文件中调用日历控件时不起作用,必须把JS和PHP放在一起才能运行。
到底怎样改才能在外部调用运行
<input type="text" name="start" readOnly onClick="setDay(this);"><!--
//------------------ 样式定义 ---------------------------// 
//功能按钮同样样式 
var s_tiannet_turn_base = "height:16px;font-size:9pt;color:white;border:0 solid #CCCCCC;cursor:hand;background-color:#2650A6;"; 
//翻年、月等的按钮 
var s_tiannet_turn = "width:28px;" + s_tiannet_turn_base; 
//关闭、清空等按钮样式 
var s_tiannet_turn2 = "width:22px;" + s_tiannet_turn_base; 
//年选择下拉框 
var s_tiannet_select = "width:64px;display:none;"; 
//月、时、分选择下拉框 
var s_tiannet_select2 = "width:46px;display:none;"; 
//日期选择控件体的样式 
var s_tiannet_body = "width:150;background-color:#2650A6;display:none;z-index:9998;position:absolute;" + 
  "border-left:1 solid #CCCCCC;border-top:1 solid #CCCCCC;border-right:1 solid #999999;border-bottom:1 solid #999999;"; 
//显示日的td的样式 
var s_tiannet_day = "width:21px;height:20px;background-color:#D8F0FC;font-size:10pt;"; 
//字体样式 
var s_tiannet_font = "color:#FFCC00;font-size:9pt;cursor:hand;"; 
//链接的样式 
var s_tiannet_link = "text-decoration:none;font-size:9pt;color:#2650A6;"; 
//横线 
var s_tiannet_line = "border-bottom:1 solid #6699CC"; 
//------------------ 变量定义 ---------------------------// 
var tiannetYearSt = 1950;//可选择的开始年份 
var tiannetYearEnd = 2020;//可选择的结束年份 
var tiannetDateNow = new Date(); 
var tiannetYear = tiannetDateNow.getFullYear(); //定义年的变量的初始值 
var tiannetMonth = tiannetDateNow.getMonth()+1; //定义月的变量的初始值 
var tiannetDay = tiannetDateNow.getDate(); 
var tiannetHour = 8;//tiannetDateNow.getHours(); 
var tiannetMinute = 0;//tiannetDateNow.getMinutes(); 
var tiannetArrDay=new Array(42);          //定义写日期的数组 
var tiannetDateSplit = "-";     //日期的分隔符号 
var tiannetDateTimeSplit = " ";    //日期与时间之间的分隔符 
var tiannetTimeSplit = ":";     //时间的分隔符号 
var tiannetOutObject;      //接收日期时间的对象 
var arrTiannetHide = new Array();//被强制隐藏的标签 
var m_bolShowHour = false;//是否显示小时 
var m_bolShowMinute = false;//是否显示分钟 var m_aMonHead = new Array(12);         //定义阳历中每个月的最大天数 
    m_aMonHead[0] = 31; m_aMonHead[1] = 28; m_aMonHead[2] = 31; m_aMonHead[3] = 30; m_aMonHead[4]  = 31; m_aMonHead[5]  = 30; 
    m_aMonHead[6] = 31; m_aMonHead[7] = 31; m_aMonHead[8] = 30; m_aMonHead[9] = 31; m_aMonHead[10] = 30; m_aMonHead[11] = 31; 
// ---------------------- 用户可调用的函数 -----------------------------// 
//用户主调函数-只选择日期 
function setDay(obj){ 
tiannetOutObject = obj; 
//如果标签中有值,则将日期初始化为当前值 
var strValue = tiannetTrim(tiannetOutObject.value); 
if( strValue != "" ){ 
  tiannetInitDate(strValue); 

tiannetPopCalendar(); 

//用户主调函数-选择日期和小时 
function setDayH(obj){ 
tiannetOutObject = obj; 
m_bolShowHour = true; 
//如果标签中有值,则将日期和小时初始化为当前值 
var strValue = tiannetTrim(tiannetOutObject.value); 
if( strValue != "" ){ 
  tiannetInitDate(strValue.substring(0,10)); 
  var hour = strValue.substring(11,13); 
  if( hour < 10 ) tiannetHour = hour.substring(1,2); 

tiannetPopCalendar(); 

//.......//显示被隐藏的标签 function tiannetShowObject(){ 
for(var i = 0;i < arrTiannetHide.length;i ++){ 
  //alert(arrTiannetHide[i]); 
  arrTiannetHide[i].style.visibility = ""; 


//初始化日期。 
function tiannetInitDate(strDate){ 
var arr = strDate.split(tiannetDateSplit); 
tiannetYear = arr[0]; 
tiannetMonth = arr[1]; 
tiannetDay = arr[2]; 

//清空 
function tiannetClear(){ 
tiannetOutObject.value = ""; 
tiannetHideControl(); 

//任意点击时关闭该控件 
function document.onclick(){  
  with(window.event.srcElement){  
if (tagName != "INPUT" && getAttribute("Author") != "tiannet") 
    tiannetHideControl(); 
  } 

//按ESC键关闭该控件 
function document.onkeypress(){ 
if( event.keyCode == 27 ){ 
  tiannetHideControl(); 


//-->

解决方案 »

  1.   

    你指的外部调用运行是什么意思?日历控件应该在HTML中用
    <script type="text/javascript" src="calender.js"></script>来引用。
      

  2.   

    <script type="text/javascript" src="calender.js"></script> //加载文件<input type="text" name="start" onClick="setDay(this);">  // 调用 日历应该是这样的 ,没错啊, LZ 要不把错误 贴出来看看
      

  3.   

    我把JS和HTML写在一页里就能正常运行,但是我把JS单独调用的时候,点击文本框根本就不起作用
    我也是这样写的,不行。
      

  4.   

    代码不全!已知缺少下列函数
    tiannetPopCalendar
    tiannetTrim补全代码后再说
      

  5.   

    我是按着这个写的 http://www.cnblogs.com/fairjob/articles/419471.html
      

  6.   

    本帖最后由 xuzuning 于 2010-09-02 13:44:17 编辑
      

  7.   

    还是那样写在一个页面里可以,分开就不行
    <script type="text/javascript" src="javascript/rili.js"></script>
    ....
    <form name="form1" action="login.php" method="POST" onsubmit="return Check();">
    <input type="text"  name="start" readOnly onClick="setDay(this);"/>
    </form>var s_tiannet_turn_base = "height:16px;font-size:9pt;color:white;border:0 solid #CCCCCC;cursor:hand;background-color:#2650A6;"; 
    //翻年、月等的按钮 
    var s_tiannet_turn = "width:28px;" + s_tiannet_turn_base; 
    //关闭、清空等按钮样式 
    var s_tiannet_turn2 = "width:22px;" + s_tiannet_turn_base; 
    //年选择下拉框 
    var s_tiannet_select = "width:64px;display:none;"; 
    //月、时、分选择下拉框 
    var s_tiannet_select2 = "width:46px;display:none;"; 
    //日期选择控件体的样式 
    var s_tiannet_body = "width:150;background-color:#2650A6;display:none;z-index:9998;position:absolute;" + 
      "border-left:1 solid #CCCCCC;border-top:1 solid #CCCCCC;border-right:1 solid #999999;border-bottom:1 solid #999999;"; 
    //显示日的td的样式 
    var s_tiannet_day = "width:21px;height:20px;background-color:#D8F0FC;font-size:10pt;"; 
    //字体样式 
    var s_tiannet_font = "color:#FFCC00;font-size:9pt;cursor:hand;"; 
    //链接的样式 
    var s_tiannet_link = "text-decoration:none;font-size:9pt;color:#2650A6;"; 
    //横线 
    var s_tiannet_line = "border-bottom:1 solid #6699CC"; 
    //------------------ 变量定义 ---------------------------// 
    var tiannetYearSt = 1950;//可选择的开始年份 
    var tiannetYearEnd = 2020;//可选择的结束年份 
    var tiannetDateNow = new Date(); 
    var tiannetYear = tiannetDateNow.getFullYear(); //定义年的变量的初始值 
    var tiannetMonth = tiannetDateNow.getMonth()+1; //定义月的变量的初始值 
    var tiannetDay = tiannetDateNow.getDate(); 
    var tiannetHour = 8;//tiannetDateNow.getHours(); 
    var tiannetMinute = 0;//tiannetDateNow.getMinutes(); 
    var tiannetArrDay=new Array(42);          //定义写日期的数组 
    var tiannetDateSplit = "-";     //日期的分隔符号 
    var tiannetDateTimeSplit = " ";    //日期与时间之间的分隔符 
    var tiannetTimeSplit = ":";     //时间的分隔符号 
    var tiannetOutObject;      //接收日期时间的对象 
    var arrTiannetHide = new Array();//被强制隐藏的标签 
    var m_bolShowHour = false;//是否显示小时 
    var m_bolShowMinute = false;//是否显示分钟 var m_aMonHead = new Array(12);         //定义阳历中每个月的最大天数 
        m_aMonHead[0] = 31; m_aMonHead[1] = 28; m_aMonHead[2] = 31; m_aMonHead[3] = 30; m_aMonHead[4]  = 31; m_aMonHead[5]  = 30; 
        m_aMonHead[6] = 31; m_aMonHead[7] = 31; m_aMonHead[8] = 30; m_aMonHead[9] = 31; m_aMonHead[10] = 30; m_aMonHead[11] = 31; 
    // ---------------------- 用户可调用的函数 -----------------------------// 
    //用户主调函数-只选择日期 
    function setDay(obj){ 
    tiannetOutObject = obj; 
    //如果标签中有值,则将日期初始化为当前值 
    var strValue = tiannetTrim(tiannetOutObject.value); 
    if( strValue != "" ){ 
      tiannetInitDate(strValue); 

    tiannetPopCalendar(); 

    //用户主调函数-选择日期和小时 
    function setDayH(obj){ 
    tiannetOutObject = obj; 
    m_bolShowHour = true; 
    //如果标签中有值,则将日期和小时初始化为当前值 
    var strValue = tiannetTrim(tiannetOutObject.value); 
    if( strValue != "" ){ 
      tiannetInitDate(strValue.substring(0,10)); 
      var hour = strValue.substring(11,13); 
      if( hour < 10 ) tiannetHour = hour.substring(1,2); 

    tiannetPopCalendar(); 

    //用户主调函数-选择日期和小时及分钟 
    function setDayHM(obj){ 
    tiannetOutObject = obj; 
    m_bolShowHour = true; 
    m_bolShowMinute = true; 
    //如果标签中有值,则将日期和小时及分钟初始化为当前值 
    var strValue = tiannetTrim(tiannetOutObject.value); 
    if( strValue != "" ){ 
      tiannetInitDate(strValue.substring(0,10)); 
      var time = strValue.substring(11,16); 
      var arr = time.split(tiannetTimeSplit); 
      tiannetHour = arr[0]; 
      tiannetMinute = arr[1]; 
      if( tiannetHour < 10 ) tiannetHour = tiannetHour.substring(1,2); 
      if( tiannetMinute < 10 ) tiannetMinute = tiannetMinute.substring(1,2); 

    tiannetPopCalendar(); 

    //设置开始日期和结束日期 
    function  setYearPeriod(intDateBeg,intDateEnd){ 
    tiannetYearSt = intDateBeg; 
    tiannetYearEnd = intDateEnd; 

    //设置日期分隔符。默认为"-" 
    function setDateSplit(strDateSplit){ 
    tiannetDateSplit = strDateSplit; 

    //设置日期与时间之间的分隔符。默认为" " 
    function setDateTimeSplit(strDateTimeSplit){ 
    tiannetDateTimeSplit = strDateTimeSplit; 

    //设置时间分隔符。默认为":" 
    function setTimeSplit(strTimeSplit){ 
    tiannetTimeSplit = strTimeSplit; 

    //设置分隔符 
    function setSplit(strDateSplit,strDateTimeSplit,strTimeSplit){ 
    tiannetDateSplit(strDateSplit); 
    tiannetDateTimeSplit(strDateTimeSplit); 
    tiannetTimeSplit(strTimeSplit); 

    //设置默认的日期。格式为:YYYY-MM-DD 
    function setDefaultDate(strDate){ 
    tiannetYear = strDate.substring(0,4); 
    tiannetMonth = strDate.substring(5,7); 
    tiannetDay = strDate.substring(8,10); 

    //设置默认的时间。格式为:HH24:MI 
    function setDefaultTime(strTime){ 
    tiannetHour = strTime.substring(0,2); 
    tiannetMinute = strTime.substring(3,5); 

      

  8.   

    郁闷还是不行,到底哪错了
    [code=HTML]<title>添加</title>
    <link href="css/css.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="javascript/rili.js"></script>
    </head><script type="text/javascript">
    function Check()
    {    
    if(document.form1.hot.value ==0)
    {
      alert("id不能为空");
      document.form1.hot.focus();
      return false;
    }
    else if(document.form1.ctn.value == 0)
    {
      alert("内容不能为空");
      document.form1.ctn.focus();
      return false;
    }
    else if(document.form1.start.value == 0)
    {
    alert("开始时间不能为空");
    document.form1.start.focus();
    return false;
    }
    else if(document.form1.end.value == 0)
    {
    alert("结束时间不能为空");
    document.form1.end.focus();
    return false;
    }
    else if(document.form1.s_ty.value == 0)
    {
    alert("s_type不能为空");
    document.form1.s_ty.focus();
    return false;
    }
      return true;
    }
    </script>
    <body>
    <center>
    <form name="form1" action="login.php" method="POST" onsubmit="return Check();">
    <table>
           <tr>
              <td height="30" class="zi"><img src="img/38.gif" width="10" height="10"/>开始时间:</td>
              <td align="left" class="zhushi"><input type="text"  name="start" readOnly onClick="setDay(this);"/> 
              *例:年-月-日</td></tr>
           <tr>
              <td height="30" class="zi" ><img src="img/38.gif" width="10" height="10"/>结束时间:</td>
              <td align="left" class="zhushi"><input type="text" name="end" readOnly onClick="setDay(this);">          *例:年-月-日</td>
      </tr></table>
    </form>
    [code]
      

  9.   

    src="javascript/rili.js">引用路径对吗,目录结构是怎样的