0

我有以下代码:

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静态,但没有奏效。

4

5 回答 5

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;
}
于 2013-07-16T09:14:39.917 回答
0

我不喜欢你这样做的方式,但答案是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 是一个非常非常糟糕的主意

于 2013-07-16T07:22:13.520 回答
0

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

于 2013-07-16T07:23:00.523 回答
0

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

window.flag = 0;

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

于 2013-07-16T07:23:01.743 回答
0
var flag = 0;
funct(){//makes changes on css
flag=0;}

尝试

var flag = 0;
function funct(){  // <<<<< function
//makes changes on css
flag=0;}
于 2013-07-16T10:11:51.763 回答