2013-12-06 5 views
0

Как сфокусировать вход, когда один из них не заполнен. Сейчас у меня есть это: http://jsfiddle.net/jalxob/ahQLCФокусировка входа, когда он не заполнен

$('#form').submit(function() { 
if ($.trim($("#email").val()) === "" || $.trim($("#user_name").val()) === "") { 
    $(".email1").addClass("focusred"); 
    $(".name1").addClass("focusred"); 
    return false; 
} }); 

Это показывает красный фокус, но в обоих входах, хотя один из них заполнен.

Спасибо ребята

ответ

0
$('#form').submit(function() { 
    var result = true, 
     focus_class = "focusred", 
     elements = $("input#user_name,input#email"); 

    elements.each(function (index, element) { 
     var element = $(element); 
     if ($.trim(element.val()) === "") { 
      element.addClass(focus_class); 
      result = false; 
     } else { 
      element.removeClass(focus_class); 
     } 
    }) 
    return result; 
}); 

Update, лучше ответ:

http://jsfiddle.net/SobiborTreblinka/6UgxJ/3/

+0

Это выглядит потрясающе! Большое вам спасибо! – user2989327

2

Попробуйте

$('#form').submit(function() { 
    if ($.trim($("#email").val()) === "") { 
     $("#email").focus(); 
     return false; 
    } 
    if ($.trim($("#user_name").val()) === "") { 
     $("#user_name").focus(); 
     return false; 
    } 
}); 

Демо: Fiddle

+0

Да, это должно быть сделано. – Kehlan

+0

Спасибо! Он не делает то, что я ищу. Если не все эти входы заполнены, фокусируется только одно :( – user2989327

+0

@ user2989327 в одно время можно только сфокусировать ... но вы можете добавить класс, чтобы выделить элемент –

0

Попробуйте следующее:

$('#form').submit(function() { 
if ($.trim($("#email").val()) === "") 
{ 
    $(".email1").addClass("focusred").focus(); 
} 
if ($.trim($("#user_name").val()) === "") 
{ 
    $(".name1").addClass("focusred").focus(); 
} 
    return false; 

});

Демонстрация: Fiddle

Смежные вопросы