-1

我正在使用 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>

但它不起作用。我添加了示例警报仅用于测试目的。即使隐藏字段没有值,代码也会执行。谁能帮我解决这个问题?提前致谢。

4

3 回答 3

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", '', ''); 
    }
});
于 2013-07-01T07:48:05.923 回答
2

我认为这不是 smarty/jquery 错误,而是编码错误:

if ('user_login_status' != '')

将始终被评估为 true,因为您正在比较 2 个字符串。

我认为你应该改变它

if ($('#user_login_status').val() != '')
于 2013-07-01T07:47:52.767 回答
1

代替

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

和:

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

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

于 2013-07-01T07:48:25.850 回答