javascript - jquery 中的控件不返回函数

标签 javascript jquery function return alert

我正在使用函数 c_alert() 自定义 Jquery 中的警报框。当用户使用空登录详细信息登录时,我显示警报框。登录时调用的函数如下所示。

function login()
{
    var loginName     = $("#US_UName").val();
    var loginName     = $.trim(loginName);

    if (loginName == "") {

        c_alert("Authentication Error","Please enter your username");
        $("#US_UName").focus();   // not working
        return false;

    } 
}

c_alert() 如下:

function c_alert(Title,Msg) {
    $.confirm({
        'title'     : Title,
        'message'   : Msg,
        'buttons'   : {
            'OK'    : {
                'class' : 'blue',
                'action': function(){
                    return;
                }
            }
        }
    });
};

现在的问题是,显示警报后,我想将光标指向相应的字段以输入详细信息,但这是行不通的。我尝试在 c_alert() 中使用 return; 语句,但没有成功。

$.confirm()的代码如下所示:

(function($){

    $.confirm = function(params){

        if($('#confirmOverlay').length){
            // A confirm is already shown on the page:
            return false;
        }

        var buttonHTML = '';
        $.each(params.buttons,function(name,obj){

            // Generating the markup for the buttons:

            buttonHTML += '<a href="#" class="button '+obj['class']+'">'+name+'<span></span></a>';

            if(!obj.action){
                obj.action = function(){};
            }
        });

        var markup = [
            '<div id="confirmOverlay">',
            '<div id="confirmBox">',
            '<h1>',params.title,'</h1>',
            '<p>',params.message,'</p>',
            '<div id="confirmButtons">',
            buttonHTML,
            '</div></div></div>'
        ].join('');

        $(markup).hide().appendTo('body').fadeIn();

        var buttons = $('#confirmBox .button'),
            i = 0;

        $.each(params.buttons,function(name,obj){
            buttons.eq(i++).click(function(){

                // Calling the action attribute when a
                // click occurs, and hiding the confirm.

                obj.action();
                $.confirm.hide();
                return false;
            });
        });
    }

    $.confirm.hide = function(){
        $('#confirmOverlay').fadeOut(function(){
            $(this).remove();
        });
    }

})(jQuery);

谁能帮我找出我做错了什么?

提前致谢。

最佳答案

您需要将 focus 命令添加到警报的 ok 函数中,如下所示

function c_alert(Title,Msg, el) {
    $.confirm({
        'title'     : Title,
        'message'   : Msg,
        'buttons'   : {
            'OK'    : {
                'class' : 'blue',
                'action': function(){
                    if(el) {
                        el.focus();
                    }
                    return;
                }
            }
        }
    });
};

关于javascript - jquery 中的控件不返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26670680/

相关文章:

javascript - 从外部页面查找 javascript 错误,将结果输出到文件

javascript - 使用 ngIf 错误时如何禁用 Angular 6 中的按钮保存

javascript - 如果 X = 宽度和 X = 高度,JS 图像检测不会为图像添加类

jquery - 从文件加载 Javascript 对象

javascript - jQuery timeago 使用 .load 生成的内容

javascript - 如何检查是否选择了每行中的任何按钮

javascript - 隐藏移相器上的溢出

c - C 中意外的函数原型(prototype)行为

python - 从 Python 中的字符串列表中删除章节号

postgresql - postgresql函数中如何转换输入参数类型