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