在javascript中动态更改和检查变量

时间:2013-07-16 07:18:12

标签: php javascript html variables

我有以下代码:

JS:

var flag = 0;
funct(){//makes changes on css
flag=0;}

HTML:

<form onsubmit="if(flag==1)return funct()">

PHP:

if(somethingIsOK){
    echo "<script>flag=1;</script>"; //should use new css which comes with funct()
}else{//do something else with keeping the existing css}

我想要这个结构,但我不能像我想的那样使用变量flag。我试过让flag静态,但它不起作用。

5 个答案:

答案 0 :(得分:1)

使用隐藏字段设置/取消设置标志

<input type="hidden" name="flag" id="flag" value="1" />

的javascript

var flag = document.getElementById('flag').value;
funct(){//makes changes on css
document.getElementById('flag').value=0;
}

答案 1 :(得分:0)

我不喜欢你这样做的方式,但答案是在标记之前删除var以使其成为全局:

flag = 0;

proof

修改

  1. 如果您想阻止表单提交funct()必须return false;
  2. 也许你试试

    if(somethingIsOK){
        echo "<script type="text/javascript">flag=1;</script>"; 
    }else{
        echo "<script type="text/javascript">flag=0;</script>"; 
    }
    
  3. 并再次:将php和JS混合起来是一个非常糟糕的主意

答案 2 :(得分:0)

您无法在PHP和JS中轻松使用相同的变量。但是,您可以使用名称标志和变量值创建<input type="hidden">,然后在PHP和JS中读取它。

答案 3 :(得分:0)

使用这样的结构是个坏主意,但是如果你真的想要使用一些全局变量,你可以将它分配给window对象属性,即:

window.flag = 0;

在你需要的任何地方使用这个变量(window.flag)。

答案 4 :(得分:0)

var flag = 0;
funct(){//makes changes on css
flag=0;}

var flag = 0;
function funct(){  // <<<<< function
//makes changes on css
flag=0;}