Javascript 为什么要进行这个ajax调用,尽管它不应该';不可能

Javascript 为什么要进行这个ajax调用,尽管它不应该';不可能,javascript,jquery,ajax,forms,validation,Javascript,Jquery,Ajax,Forms,Validation,我有这个验证脚本我正在工作,但不明白为什么我有一个问题 您可以看到,我有一个check=false/true,在它运行ajax调用之前进行检查 但是,即使字段为空且check设置为false,它仍在运行调用 因此: 如果(check=true)是赋值。你需要一张支票 if (check == true) { 或者就像JasonP提到的,只是 if (check) { 如果(check=true)是赋值。你需要一张支票 if (check == true) { 或者就像JasonP提到的,只

我有这个验证脚本我正在工作,但不明白为什么我有一个问题

您可以看到,我有一个check=false/true,在它运行ajax调用之前进行检查

但是,即使字段为空且check设置为false,它仍在运行调用

因此:

如果(check=true)
是赋值。你需要一张支票

if (check == true) {
或者就像JasonP提到的,只是

if (check) {
如果(check=true)
是赋值。你需要一张支票

if (check == true) {
或者就像JasonP提到的,只是

if (check) {
如果(check=true)
是赋值。你需要一张支票

if (check == true) {
或者就像JasonP提到的,只是

if (check) {
如果(check=true)
是赋值。你需要一张支票

if (check == true) {
或者就像JasonP提到的,只是

if (check) {

在if语句中只使用一个equals。换成这个

if (check == true) {
甚至更好

if (check) {

在if语句中只使用一个equals。换成这个

if (check == true) {
甚至更好

if (check) {

在if语句中只使用一个equals。换成这个

if (check == true) {
甚至更好

if (check) {

在if语句中只使用一个equals。换成这个

if (check == true) {
甚至更好

if (check) {

您正在使用赋值
=
,而不是比较
=
,来测试
检查
。而不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
你想写这封信:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
这是一个常见的陷阱。在
if
语句的条件内,将
true
赋值给
check
是完全有效的,尽管在这种情况下这不是您想要做的。
check=true
的结果也是
true
(它允许并行赋值,
a=b=c=true
,以便工作),因此本质上你是在做
if(true)
。这是可取的,尽管经常是意外使用时的麻烦源。一般用途是将表达式的结果赋给临时变量,该临时变量的作用域为
if
语句

基本上,不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
。。。它让你写下:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
注:

在这种特殊情况下,当您针对布尔值
true
/
false
进行测试时,最好只编写
if(check)
if(!check)
,而不是使用
=
进行显式比较

注2:


“check”是一个特别糟糕的变量名。你的变量应该是有表现力的;我应该知道它是干什么的,没有评论的帮助。在这种情况下,我至少会将其称为
valid
,或者可能称之为
formIsValid
,或者反转您的检查并使用
var errors=false
如果(!errors)
您正在使用赋值,
=
,而不是比较,
=
,来测试
检查
。而不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
你想写这封信:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
这是一个常见的陷阱。在
if
语句的条件内,将
true
赋值给
check
是完全有效的,尽管在这种情况下这不是您想要做的。
check=true
的结果也是
true
(它允许并行赋值,
a=b=c=true
,以便工作),因此本质上你是在做
if(true)
。这是可取的,尽管经常是意外使用时的麻烦源。一般用途是将表达式的结果赋给临时变量,该临时变量的作用域为
if
语句

基本上,不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
。。。它让你写下:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
注:

在这种特殊情况下,当您针对布尔值
true
/
false
进行测试时,最好只编写
if(check)
if(!check)
,而不是使用
=
进行显式比较

注2:


“check”是一个特别糟糕的变量名。你的变量应该是有表现力的;我应该知道它是干什么的,没有评论的帮助。在这种情况下,我至少会将其称为
valid
,或者可能称之为
formIsValid
,或者反转您的检查并使用
var errors=false
如果(!errors)
您正在使用赋值,
=
,而不是比较,
=
,来测试
检查
。而不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
你想写这封信:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
这是一个常见的陷阱。在
if
语句的条件内,将
true
赋值给
check
是完全有效的,尽管在这种情况下这不是您想要做的。
check=true
的结果也是
true
(它允许并行赋值,
a=b=c=true
,以便工作),因此本质上你是在做
if(true)
。这是可取的,尽管经常是意外使用时的麻烦源。一般用途是将表达式的结果赋给临时变量,该临时变量的作用域为
if
语句

基本上,不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
。。。它让你写下:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
注:

在这种特殊情况下,当您针对布尔值
true
/
false
进行测试时,最好只编写
if(check)
if(!check)
,而不是使用
=
进行显式比较

注2:


“check”是一个特别糟糕的变量名。你的变量应该是有表现力的;我应该知道它是干什么的,没有评论的帮助。在这种情况下,我至少会将其称为
valid
,或者可能称之为
formIsValid
,或者反转您的检查并使用
var errors=false
如果(!errors)
您正在使用赋值,
=
,而不是比较,
=
,来测试
检查
。而不是这个

if (check = true) {
var result = expensiveCalculation()
if (result) {
  // do something with result
}
你想写这封信:

if (check == true) {
if (result = expensiveCalculation()) {
  // do something with result
}
这是一个常见的陷阱。在
if
语句的条件内,将
true
赋值给
check
是完全有效的,尽管在这种情况下这不是您想要做的。结果