开发者社区> 问答> 正文

JS放在<head></head>内,调用其中的函数时为?报错

代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>江高镇精细化工产业技术网</title>
    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"></meta>
    <meta http-equiv="description" content="this is my page"></meta>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"></meta>
    
    

      <script type="text/javascript" src="__PUBLIC__/js/jquery-1.4.2.min.js"></script>
      <link rel="stylesheet" type="text/css"></link>
      <link rel="stylesheet" type="text/css"></link>
      <script type="text/javascript" src="__PUBLIC__/js/index.js"></script>
    
<script type="text/javascript">
function messageSubmit(){
    var username = document.getElementById('mname').value;
    var content = document.getElementById('mcontent').value;
    var phone = document.getElementById('mphone').value;
    var email = document.getElementById('memail').value;
    
    var address = document.getElementById('maddress').value;//联系地址
    var cname = document.getElementById('mcname').value;//公司名称
    var question = document.getElementById('mquestion').value;//验证问题
    var verify = document.getElementById('mverify').value;

    if(username == ''){
        alert('姓名不能为空!');
        return false;
    }
    
    if(!phone.match(/^(13[0-9]{9})|(18[0-9]{9})|(15[89][0-9]{8})$/)){
         alert("手机格式不正确,请重新输入!");
         return false;
    }     
        
    if(!email.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)){
         alert("邮箱格式不正确,请重新输入!");
         return false;
    }
    
    if(address == ''){
        alert('联系地址不能为空!');
        return false;
    }
    
    if(cname == ''){
        alert('公司名称不能为空!');
        return false;
    }

    if(content == ''){
        alert('内容不能为空!');
        return false;
    }
    else if(content.length>
    
    if(question == ''){
        alert('请回答验证问题!');
        return false;
    }
    else if(question !== '18')
    {
        alert('回答错误!');
        return false;
    }
    
    if(verify == ''){
        alert('请填写验证码!');
        return false;
    }
    else
    {
        //if(!checkVerify())
        //{
            //alert('验证码填写错误!');
            //return false;
        //}
    }

    document.getElementById('messageForm').submit();
            

}

//用Ajax方法检测验证码是否正确
function checkVerify()
{
    var xmlHttp;
    if(window.XMLHttpRequest)
    {
        xmlHttp = new XMLHttpRequest();
    }
    else
    {
        xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
    }
    
    var verify = document.getElementById('mverify').value;
    //alert(verify);  //test
    var url = 'index.php?m=Message&a=verify&verify=' + verify + '&sid=' + Math.random();
    xmlHttp.open('GET',url,true);
    xmlHttp.send();
    xmlHttp.onreadystatechange = function()
    {
        if(xmlHttp.readyState == 4 && xmlHttp.readyStatus == 200)
        {
            var response = xmlHttp.responseText;
            alert('response--' + response);//test
            if(response=='1')
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}
</script>
    
    
  </head>
 
  <body>
    <div class="top">
    
        <!--头部欢迎语start-->
        <include file="./public/t_title.html" />
        <!--头部欢迎语end-->
        
    </div>
    <div class="i_content">
        <div class="i_main">
            <div class="im_top">
            
                <!--搜索框和登录框 start-->
                <include file="./public/im_left_right.html" />
                <!--搜索框和登录框 end-->
                
                <div class="c"></div>
                <div class="im_title">
                    <!--顶级菜单start-->
                    <include file="./public/imt_left.html" />
                    <!--一级菜单end-->
                    
                    <!--快捷通道start-->
                    <include file="./Public/imt_right.html" />
                    <!--快捷通道end-->
                    
                    <div class="c"></div>
                </div>
            </div>
            
            <!--一级菜单start-->
            <include file="./public/im_menu.html" />
            <!--一级菜单end-->
            
            <div class="im_main">
                <div class="gy_main">
                    
                    <!--关于我们start-->
                    <include file="./Public/gy_left_gyr_top.html" />
                    <!--关于我们end-->
                    
                        <div class="gyr_info">
                            <div class="gyr_title">请将您需要的信息反馈给我们,我们会及时跟您联络(<span class="gyr_font2">带*号必填</span>)</div>
                            <form method="POST" action="index.php?m=Message&a=insertMessage" id="messageForm">
                            <table cellpadding="0" cellspacing="0" class="gyr_tab">
                                <tr>
                                    <td align="right">留言内容:</td>
                                    <script type="text/javascript">
                                    //留言字数限制。将此函数放在<head></head>之间时为何报错:此函数没有定义?
                                    function metip()
                                    {
                                        document.getElementById("mcontent").value = '';
                                    }
                                    </script>
                                    <td valign="middle" class="gyr_td2"><textarea rows="5" cols="50" id="mcontent" name="content" onfocus="metip()">留言内容最大字数为70</textarea><span class="gyr_font4 gyr_span2">*</span></td>                    
                                </tr>                                
                                <tr>
                                    <td align="right">客户姓名:</td>
                                    <td><input class="gyr_inp2" name="name" id="mname"/><span class="gyr_font4">*</span></td>
                                </tr>
                                <tr>
                                    <td align="right">移动电话:</td>
                                    <td><input class="gyr_inp2" name="phone" id="mphone"/><span class="gyr_font4">*</span></td>
                                </tr>
                                <tr>
                                    <td align="right">性别:</td>
                                    <td><input type="radio" name="sex" value="男" />男<input type="radio" name="sex" value="女" />女</td>
                                </tr>
                                <tr>
                                    <td align="right">电子邮箱:</td>
                                    <td><input class="gyr_inp2" name="email" id="memail"/><span class="gyr_font4">*</span></td>
                                </tr>
                                <tr>
                                    <td align="right">联系地址:</td>
                                    <td><input class="gyr_inp2" name="address" id="maddress" /><span class="gyr_font4">*</span></td>
                                </tr>
                                <tr>
                                    <td align="right">公司名称:</td>
                                    <td><input class="gyr_inp2" name="cname" id="mcname" /><span class="gyr_font4">*</span></td>
                                </tr>
                                <tr>
                                    <td align="right">验证问题:</td>
                                    <td><input class="gyr_inp1" id="mquestion" /><span class="gyr_font4">*</span>请回答括号的问题:[3 * 6=?]</td>
                                </tr>
                                    <tr>
                                    <td align="right">验证码:</td>
                                    <td class="gyr_ta1">
                                        <input class="gyr_inp1" id="mverify" name="verify" />
                                        <span class="gyr_font4">*</span>
                                        <script type="text/javascript">
                                        function getVerify()
                                        {
                                            document.getElementById("verify").src = "__APP__/Public/verify/" + Math.random();
                                        }
                                        </script>
                                        <span>
                                            <img src="__APP__/Public/verify/" id="verify" class="gyr_img1"></img>
                                            <a class="gyr_font3" onclick="getVerify()">换一张</a>
                                        </span>
                                    </td>
                                </tr>
                                <tr>
                                    <td></td>
                                    <td>
                                        <input type="button" class="gyr_but1" value="" onclick="messageSubmit()"/>
                                        <input type="reset" class="gyr_but2" value=""/>
                                    </td>
                                </tr>
                            </table>
                            </form>
                        </div>
                        
                    </div>
                    <div class="c"></div>
                </div>
                
                <!--friendlink start-->
                <include file="./public/i5m_right.html" />
                <!--friendlink end-->    
                
                </div>
            </div>
        </div>
        
        <include file="./public/i_bom.html" />
        
    </div>
  </body>
</html>

---------------------------------------------------------------------------------------------

在<form></form>的<input type="button" onclick="messageSubmit()" />中的函数messageSubmit在<head></head>中的JS中定义了,但为何在firebug中报错说此函数没有定义?

展开
收起
爱吃鱼的程序员 2020-06-22 17:04:08 653 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    明显是代码除了bug:

     if(content==''){
          alert('内容不能为空!');
          returnfalse;
       }
       elseif(content.length>

    贴代码记得弄个高亮,无关的代码少贴代码缺失引了jquery咋没用 一楼说的很对, 楼主还是先学会如何提问吧,这样提问没有人会耐心看完的,更不要指望别人帮你解决问题了……

    在head区放置js要将函数放在

    $(document).ready(function(){//在这里写你的代码...});等待htmldom完毕,否则先加载js,后加载html ,岂不报错。

    别的不多说,你把JS代码都移到页面底部,也就是</body>标签的前面。 另外这个是基本JS执行顺序的问题,任何一本比较好的JS书上都会讲到这个,僻如: 《JavaScript权威指南》《高级Javascript程序设计》《web前端修炼之道》《JavaScript设计模式》等PHP标签意义何在
    2020-06-22 17:04:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载