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