这个 JS if Condition 测试有什么问题?

发布于 2024-11-17 17:02:03 字数 603 浏览 1 评论 0原文

这段代码在没有 if 条件测试的情况下工作正常,我在 if 条件方面哪里出了问题?

$(document).ready(function() {
  if ($("input[name=contest_open]").val() == true) {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });      
  }, 30000); 
  }
})

this code works fine without the if condition test, where am I going wrong here with the if condition?

$(document).ready(function() {
  if ($("input[name=contest_open]").val() == true) {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });      
  }, 30000); 
  }
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

茶底世界 2024-11-24 17:02:03

问题是 val 不返回布尔值。如果您尝试检查 input[name=contest_open]value 是否不为空,请尝试 val() !== ""反而。

如果您尝试检查该值是否为字符串“true”,则需要用引号将 true 括起来。

The problem is that val does not return a boolean value. If you are trying to check whether the value of input[name=contest_open] is not empty, try val() !== "" instead.

If you are trying to check whether the value is the string "true", you need to enclose true with quotes.

野稚 2024-11-24 17:02:03

val() 将返回一个字符串。

如果您想测试“true”,请使用此选项

$(document).ready(function() {
  if ($("input[name=contest_open]").val() === "true") {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });      
  }, 30000); 
  }
})

val() will return a string.

Use this if you want to test against "true"

$(document).ready(function() {
  if ($("input[name=contest_open]").val() === "true") {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });      
  }, 30000); 
  }
})
夜雨飘雪 2024-11-24 17:02:03

如果您想检查是否存在,请

if ($("input[name=contest_open]").val()) 

仅使用 : 。

另一方面,如果您打算检查内容为“true”,则可以使用

if ($("input[name=contest_open]").val() == "true")

val() 函数返回一个字符串,原因很简单。

If you want to check for existense, then use :

if ($("input[name=contest_open]").val()) 

only.

On the ither hand, if you intend to check the contents reading "true", you can use

if ($("input[name=contest_open]").val() == "true")

For the simple reason that val() function returns a string.

意中人 2024-11-24 17:02:03

好吧,既然你有 ==,1 或一个对象也将评估为 true。对于 === ,只有当它是布尔值 true 时才会评估为 true。

Well, since you have ==, 1 or an object will also evaluate as true. With === it will only evaluate as true if it is a boolean true.

維他命╮ 2024-11-24 17:02:03

试试这个。如果您认为该值可以包含“True”,那么最好转换为小写。

$(document).ready(function() {
  if ($("input[name=contest_open]").val() == "true") {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });      
  }, 30000); 
  }
})

Try this. If you think the value can contain "True" then its better to convert to lowercase.

$(document).ready(function() {
  if ($("input[name=contest_open]").val() == "true") {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });      
  }, 30000); 
  }
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文