如果使用Jquery .focus()时语句不起作用

时间:2014-10-30 02:56:46

标签: jquery model-view-controller

在MVC应用程序中,我想仅在模型属性设置为true时才将焦点设置在文本框上。这是我正在使用的Jquery代码:

<script type="text/javascript"> $(document).ready(function () { $(function () { var isPostBack = $("#IsPostBack").val(); if (isPostBack) { $('#MyElement').focus(); } }); }); </script>

IsPostBack是一个包含布尔值的隐藏字段。出于某种原因,这只是将注意力集中在MyElement上。好像IsPostBack总是如此。但是,奇怪的是,当我在Firebug中调试时它似乎正常工作。这是怎么回事?

2 个答案:

答案 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();
        }
    });
});