is_thinking 2015-07-22 16:07 采纳率: 66.7%
浏览 4892

请问html页面如何和JavaScript共用一个变量

在同一个页面内html代码如下:

 <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }">

页面下面JavaScript代码:

 if(changed == undefined) {
                this.message = ['你未进行任何修改'];
                return;
            }

当我对input的值进行了修改时,会触发onchange,这样changed的值就为1;但是当没有进行修改时,下面的if找不到changed的值,提示changed未定义。请问各位老师怎样定义和判断changed的值?无论input改变与否,下面的if语句都能找到changed。谢谢。

  • 写回答

10条回答 默认 最新

  • is_thinking 2015-07-22 16:12
    关注

    写错了,如果触发onchange的话,changed的值为true,没有触发的话提示changed未定义

    评论
  • f455176715 2015-07-22 16:33
    关注

    在javaScript代码片段中自己定义一个变量,初值为false。当发生onchange事件时,把值true赋给该变量

    评论
  • yuke198907 2015-07-22 16:46
    关注

    你可以onchange的时候触发一个js函数啊,然后再函数里判断执行

    评论
  • is_thinking 2015-07-22 16:50
    关注

    changed=false; if(changed == false) { this.message = ['你未进行任何修改']; return; }

    这样吗?这样不行,changed一直为false

    评论
  • danielinbiti 2015-07-22 17:04
    关注
     <!DOCTYPE html>
    <html>
    <body>
    <script>
    function getChange(){
     alert(changed);//定义成全局变量,window.changed
    }
    </script>
    <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ window.changed=true; 
    }"/>
    <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ window.changed=false; 
    }"/>
    <input type='button' value='查看change状态' onclick='getChange()'/>
    </body>
    </html>
    
    评论
  • is_thinking 2015-07-22 17:23
    关注

    新问题来了,一个值可以正确判断,两个值不行

     <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }">
    

    后面是jsp

     if('undefined' == typeof(changed)) {
                    this.message = ['你未进行任何修改'];
                    return;
                }
    

    这样可以正确判断,但是如果我加了个邮箱验证就不行了

     <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }">
     <input type="text" id="email" v-on="blur:emailCheck" onchange="javascript:{ echanged=true; }">
    

    后面jsp

      if('undefined' == typeof(changed) && 'undefined' == typeof(echanged)  ) {
                    this.message = ['你未进行任何修改'];
                    return;
                }
    

    这样就不行了。。。

    评论
  • _明月 2015-07-22 17:27
    关注

    亲,onchange事件是必须有变化才触发的,类似onkeypress,你试试声明一个全局变量 var changed呢

    评论
  • 斯洛文尼亚旅游 2015-07-22 17:47
    关注

    change申明为全局变量。。

     <script>var change=false</script>
    <form onsubmit="return check(this)">
     <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }">
      <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }">
         <input type="text" id="name" v-on="blur:nameCheck" onchange="javascript:{ changed=true; }">
         <input type="submit"></form>
         <script>
         function check(f){
         if(!change){alert('未作修改');return false;}
         }
         </script>
    
    评论
  • save4me 2015-07-22 18:34
    关注

    定义一个全局变量就可以了,参考在线演示

    评论
  • 普通网友 2015-07-24 21:49
    关注

    案件告破,还是用的
    if('undefined' == typeof(changed)) {
    this.message = ['你未进行任何修改'];
    return;
    }

    用两次不行是因为我程序的其他问题,用undefined可以正确判断,谢谢各位老师。

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部