如果条件测试,这个JS有什么问题?

时间:2011-06-28 17:23:47

标签: javascript jquery if-statement

这个代码在没有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); 
  }
})

5 个答案:

答案 0 :(得分:3)

问题是val没有返回布尔值。如果您要检查value的{​​{1}}是否为空,请尝试input[name=contest_open]

如果您要检查值是否为字符串“true”,则需要用引号括起val() !== ""

答案 1 :(得分:2)

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

如果您想要对“真实”

进行测试,请使用此选项
$(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); 
  }
})

答案 2 :(得分:1)

如果您想检查存在,请使用:

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

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

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

由于val()函数返回字符串的简单原因。

答案 3 :(得分:0)

好吧,因为你有==,1或者一个对象也会评估为真。对于===,如果它是布尔值true,它将仅计算为真。

答案 4 :(得分:0)

试试这个。如果您认为该值可以包含“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); 
  }
})