在MVC应用程序中,我想仅在模型属性设置为true时才将焦点设置在文本框上。这是我正在使用的Jquery代码:
<script type="text/javascript">
$(document).ready(function () {
$(function () {
var isPostBack = $("#IsPostBack").val();
if (isPostBack) {
$('#MyElement').focus();
}
});
});
</script>
IsPostBack
是一个包含布尔值的隐藏字段。出于某种原因,这只是将注意力集中在MyElement
上。好像IsPostBack
总是如此。但是,奇怪的是,当我在Firebug中调试时它似乎正常工作。这是怎么回事?
答案 0 :(得分:2)
您的值可能是字符串&#34; false&#34; 和"false" != false
,因此请尝试将isPostBack
更改为
var isPostBack = ($("#IsPostBack").val() == "true") ? true : false;
更新:: 您可以将您的值转换为小写并进行比较,如下:
$(document).ready(function () {
var isPostBackStr = $.trim( $("#IsPostBack").val() );
isPostBackStr = isPostBackStr.toLowerCase();
var isPostBack = ( isPostBackStr == "true") ? true : false;
if (isPostBack) {
$('#MyElement').focus();
}
});
答案 1 :(得分:2)
问题是isPostBack
有一个字符串值'false'
,这总是很简单
$(document).ready(function () {
$(function () {
var isPostBack = $("#IsPostBack").val();
if (isPostBack == 'true') {
$('#MyElement').focus();
}
});
});