如何根据jQuery中的条件执行代码?

时间:2013-07-01 07:45:10

标签: javascript jquery html smarty document-ready

我正在使用smarty模板。 以下是我的Html代码段

<input type="hidden" value="{$is_user_loggedin}" id="user_login_status">

我想根据id“user_login_status”中的值执行一段jQuery代码。如果它只是空白,则执行以下代码(即$(document).ready(function()):

<script language="javascript" type="text/javascript">
   if ('user_login_status' != ''){ alert("Nice");
        $(document).ready(function() {
        print_country("user_country", '', '');  
          });
    }
</script>

但它不起作用。我添加了样本警报仅用于测试目的。即使隐藏字段没有值,代码也在执行。任何人都可以帮我解决这个问题吗? 在此先感谢。

3 个答案:

答案 0 :(得分:4)

一个简单的if / else使用$('#user_login_status').val()来获取要测试的值。请注意我是如何将测试放在文档就绪函数中的,因为如果你不这样做,那么在尝试访问它时可能会遇到隐藏不存在的问题。

$(document).ready(function(){
    if($('#user_login_status').val() != ''){
        // has a value - do somehting
    } else {
        // blank value
        print_country("user_country", '', ''); 
    }
});

答案 1 :(得分:2)

我认为这不是一个聪明/ jquery错误,而是一个编码错误:

if ('user_login_status' != '')
由于您要比较2个字符串,

将始终评估为true。

我认为您应该在

中进行更改
if ($('#user_login_status').val() != '')

答案 2 :(得分:1)

替换

if ('user_login_status' != ''){ alert("Nice");

使用:

if (document.getElementById('user_login_status').value != ''){ alert("Nice");

但是你应该确保在脚本块之前放置user_login_status元素。