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

请问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。谢谢。

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

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

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

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

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

 <!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>

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

 <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;
            }

这样就不行了。。。

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

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>

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

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

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