我有以下代码:
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;
证明
编辑
- 如果你想阻止表单提交,你的
funct()
必须是return false;
也许你试试
if(somethingIsOK){ echo "<script type="text/javascript">flag=1;</script>"; }else{ echo "<script type="text/javascript">flag=0;</script>"; }
再说一遍:像
var flag = 0;
funct(){//makes changes on css
flag=0;}
尝试
var flag = 0;
function funct(){ // <<<<< function
//makes changes on css
flag=0;}