在鼠标上单击焦点表单元素或单击

时间:2013-05-21 18:07:44

标签: jquery validation setfocus mouseup

我正在尝试将表单元素集中在mouseup上,或者在mousedown上调用表单验证函数后单击。我无法弄清楚如何在单击提交按钮时聚焦无效的表单元素 - 这会验证表单。

"#submit_button mousedown" : function(el, ev) { 
        if(!validateForm()){
            return;
        }
"validateForm": function(){
        if($('#firstName').val().length<1){
            $('#firstName').next('label.error').remove();
            $('#firstName').addClass('text-error');
            $('#firstName').closest('div.control-group').children('label.control-label').addClass('label-error');
            $('#firstName').after('<label class="error" data-i18n="account.field_required"></label>'); 
            $('label.error').i18n();
            return false;
        } else {
            return true;
        }
}

"#myForm input blur": function(el, ev){           
        var currentId = el[0].id;
        var currentValue = el.val();
        $(el).next('label.error').remove();
        if($(el).is('input')){ $(el).removeClass('text-error'); }
        if($(el).is('select')){ $(el).removeClass('select-error'); }
        $(el).closest('div.control-group').children('label.control-label').removeClass('label-error');
        if(currentId=="firstName" || currentId=="lastName"){
            if(currentValue.length<1){
                $('#'+currentId).addClass('text-error');
                $('#'+currentId).closest('div.control-group').children('label.control-label').addClass('label-error');
                $('#'+currentId).after('<label class="error" data-i18n="account.field_required"></label>');
                $('label.error').i18n();
        } else {
            return;
        }
}

"#submit_button mouseup" : function(el, ev) { 
    steal.dev.log('mouseup called');
    if(!validateForm()){
        steal.dev.log('account form invalid');
        var fieldErrors = ($('#myForm input.text-error').length>0) ? $('#myForm input.text-error') : $('#myForm input.select-error');
        $('#'+fieldErrors[0].id).focus();
        return;          
    }
},

我不知道为什么无效的元素不会集中在mouseup上,除非点击两次。

谢谢,

Ĵ

0 个答案:

没有答案