笔记练习:《Javascript入门经典(第5版)》page115_9.9_Practice


练习一:修改程序清单9.1的代码,增加对phone字段是否为空的检测,让程序只输出一个条提示信息,说明哪个字段需要填写。


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Page115 Practice: Canceling Default Behavior</title>
    <script>
        function checkform(){
            document.getElementById("form1").onsubmit = function(){
                var allowSubmit = true;
                var returnError = "";
                if(document.getElementById("user").value ==""){
                    returnError += " 用户名不能为空 ";
                    allowSubmit = false;
                }
                if(document.getElementById("phone").value ==""){
                    returnError += " 电话不能为空 ";
                    allowSubmit = false;
                }
                if(allowSubmit){
                    returnError += " 数据内容填写正确,提交表单。 ";
                }
                alert(returnError);
                return allowSubmit;
            }
        }
        window.onload = checkform;
    </script>
</head>
<body>
    <form id="form1">
        用户名:<input type="text" value="" name="username" id="user" />
        [必填项]<br/>
        电话:<input type="text" value="" name="telephone" id="phone" />
        [可选项]<br/>
        <input type="submit" value="提交" />
    </form>
</body>
</html>

练习二:在由程序清单 9.3 和 9.4 组成的练习中,实现这样一个功能:双击 <div> 元素时清空其中的内容。


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Adding and Removing Event Handlers</title>
    <script>
        function  addEventHandler(element,eventType,handlerFunction){
            if(element.addEventListener){
                element.addEventListener(eventType,handlerFunction,false);
            }
            else if(element.attachEvent){
                element.attachEvent('on'+eventType,handlerFunction);
            }
        }
        function removeEventHandler(element,eventType,handlerFunction){
            if(element.removeEventListener){
                element.removeEventListener(eventType,handlerFunction,false);
        }
            else if(element.detachEvent){
                element.detachEvent('on'+eventType,handlerFunction);
            }
        }
        function appendText(e){
            if(!e)var e = window.event;
            var element = (e.target) ? e.target : e.srcElement;
            document.getElementById('div1').innerHTML += element.id + "<br />";
        }
        function removeOnclickA(){
            removeEventHandler(document.getElementById("buttonA"),'click',appendText);
        }
        function removeOnclickB(){
            removeEventHandler(document.getElementById("buttonB"),'click',appendText);
        }
        function reset(){
            addEventHandler(document.getElementById("buttonA"),'click',appendText);
            addEventHandler(document.getElementById("buttonB"),'click',appendText);
        }
        window.onload = function(){
            addEventHandler(document.getElementById("button-a"),'click',removeOnclickA);
            addEventHandler(document.getElementById("button-b"),'click',removeOnclickB);
            addEventHandler(document.getElementById("reset"),'click',reset);
            addEventHandler(document.getElementById("div1"),'dblclick',clear);
            reset();//初始化载入,调用方法并赋予每个按钮(区域)特定事件;
            clear();//清空DIV;
        }
        function clear(){
            document.getElementById("div1").innerHTML = null;
        }
    </script>
</head>
<body>
    <input id="buttonA" type="button" value="A 按钮" />
    <input id="button-a" type="button" value="移除 A 按钮点击事件" />
    <br/>
    <input id="buttonB" type="button" value="B 按钮" />
    <input id="button-b" type="button" value="移除 B 按钮点击事件" />
    <br/>
    <input id="reset" type="button" value="重置初始状态" />
    <div id="div1" style="border:1px solid black; width: 300px; height: 200px;">
    </div>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值