PHP和JS在循环,条件判断中的不同之处

JavaScript012

PHP和JS在循环,条件判断中的不同之处,第1张

一、条件判断:

php中算 false 的情况

1、 boolean:false

2、 整形:0

3、浮点型:0

4、字符串:"" "0"(其他都对)

5、空数组

6、空对象为真(只在php4算false,其他版本都算true)

7、null和尚未定义的变量

8、所有资源都算对,除php4,所有对象也算对

JS中if()中的表达式

1、 Boolean: true 真 false 假

2、 String:非空字符串为真 空字符串为假

3、 Null/NaN/Undefined:全为假

4、 Object:全为真

5、 Number:0为假,一切非0均为真

二、循环:

1、在php中,elseif可连写,可分开;在JS中必须分开

2、在php中,switch中的判断为==,而非===;而JS中为===判断

3、在php中,continue可以用于switch结构,作用与break相同;而JS中continue不能用于switch

4、在php中,break和continue后可接数字,表示跳过或跳出循环的次数;而JS中break和continue后不能接数字

在javascript中,以下值均能作为if的条件

1、布尔变量true/false

2、数字非0,非NaN/ (0 或NaN)

3、对象非null/(null或undefined)

4、字符串非空串(“”)/空串("")

你用 form.proid 取得的是一个控件组,就是同名的多个复选框,不能直接用 .value 的方式取值,需要每个判断是否被选中

<script type="text/javascript">

function beforeSubmit(form){

var proidCheck = "0"

var proidCheck2 = "0"

for(var i=0i<form.proid.lengthi++){

if(form.proid[i].checked){

proidCheck = "1"  //proid组中有选中则记录,并退出判断

break

}

}

for(var i=0i<form.pro2id.lengthi++){

if(form.pro2id[i].checked){

proidCheck2 = "1"  //pro2id组中有选中则记录,并退出判断

break

}

}

if(proidCheck=='0' && proidCheck2=='0'){

alert('至少要选择一个')

return false

}

return false

}

</script>

<form action="saveorder.asp?type=add" method="post" onSubmit="return beforeSubmit(this)">

<input type="checkbox" name="proid" value="1">

<input type="checkbox" name="proid" value="2">

<input type="checkbox" name="proid" value="3">

<input type="checkbox" name="proid" value="4">

<input type="checkbox" name="proid" value="5">

<input type="checkbox" name="pro2id" value="11">

<input type="checkbox" name="pro2id" value="12">

<input type="checkbox" name="pro2id" value="13">

<input type="checkbox" name="pro2id" value="14">

<input type="checkbox" name="pro2id" value="15">

<input type="submit"/>

</form>