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


Dynamically change and check variable in javascript

我有以下代码:

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静态,但它不起作用。

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

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

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

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

window.flag = 0;

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

我不喜欢你这样做,但答案是在标志之前删除var,使其全局化:

flag = 0;

证明

编辑

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

    if(somethingIsOK){
        echo "<script type="text/javascript">flag=1;</script>"; 
    }else{
        echo "<script type="text/javascript">flag=0;</script>"; 
    }
    

再说一遍:像

那样混合php和JS是一个非常非常糟糕的主意
var flag = 0;
funct(){//makes changes on css
flag=0;}

尝试

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