2017-01-24 5 views
0

Wie kann ich alle Klassenfelder fokussieren, deren Wert leer ist?Wie kann ich alle Klassenfelder fokussieren, deren Wert leer ist?

var skillname =$(".searchskill").map(function() { 
    if($(this).val()==''){ 
     return false; 
    } 
}).get(); 

if(jQuery.isEmptyObject(skillname)){ 
} else { 
    alert("You Can Not Keep Skill Name As Blank"); 
    $(".searchskill").css({"border-style": "solid", "border-color": "red"}); 
    $(".searchskill").focus(); 
    return false; 
} 

Ich möchte nur diejenigen konzentrieren, die leer sind ... Wie kann ich das beheben?

+4

Sie sind sich bewusst, dass Sie nur zu einem Zeitpunkt ein Feld konzentrieren können, nicht wahr? – CBroe

Antwort

1

Verwenden .filter() bekommt alle Textfelder, dessen Wert ist leer, und als andere Dinge zu tun bitten Sie mit jQuery finden Schnipsel wie unten

$(".clssubmit").on("click", function() { 
 
    var filteredList = $('.searchskill').filter(function() { 
 
    return $(this).val() == ""; 
 
    }); 
 
    if (filteredList.length > 0) { 
 
    filteredList.css("border", "1px solid red"); 
 
    return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="searchskill" value=""> 
 
<input type="text" class="searchskill" value="3"> 
 
<input type="text" class="searchskill" value=""> 
 
<input type="text" class="searchskill" value="4"> 
 

 
<input type="button" value="submit" class="clssubmit" />

+0

dort sind viele Eingabetexte sind da. abgesehen davon –

+0

Ich habe meine Antwort aktualisiert gerade anwenden gleiche Klasse auf Eingaben, auf die Sie konzentrieren müssen – Curiousdev

+0

wo muss ich reurn false schreiben ..? –

1
$(".searchskill").each(function() { 
    if($(this).val() === "") { 
     $(this).css({"border-style": "solid", "border-color": "red"}); 
    } 
}); 
+0

Verwenden von '.map' ohne Rückgabewert verschwendet nur eine Funktion. Verwenden Sie stattdessen ".each" anstatt – Rajesh

+0

@Rajesh Ich habe meinen Beitrag bearbeitet, aber ich kann Sie nicht entschuldigen –

+0

Wenn Sie '.each()' verwenden, verwenden Sie keine Variable, um es zu speichern. Er möchte sagen, dass Sie eine Variable Extra verwenden, die nichts speichert, wenn Sie nichts zurückgeben. – Shubham

1

Unter der Annahme;

var $inputs = $(".searchskill"); 
for (let i = 0, iLen = $inputs.length; i < iLen; i++) { 
     var $elem = $($inputs[i]); 
     if($elem.val()===""){ 
     $elem.parent("div").addClass("border-red alert-danger"); 
     $elem.focus(); 
     } 
    } 
1

In meinem Verständnis von focus meinen Sie highlight alle Elemente. Wenn das stimmt, können Sie attribute selector versuchen.

$(function(){ 
 
    $('.searchskill[value=""]').addClass('error') 
 
})
.error{ 
 
    border: 1px solid red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<input type ="text" class="searchskill" value=" "> 
 
<input type ="text" class="searchskill" value="3"> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="4"> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="4"> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="4"> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="4"> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="4">

0

Es könnte mit Selektoren einfacher sein.

// highlight all empty fields and focus on the first one 
 
$('.searchskill[value=""]').css({"border-style": "solid", "border-color": "red"})[0].focus();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="3"> 
 
<input type ="text" class="searchskill" value=""> 
 
<input type ="text" class="searchskill" value="4">

Verwandte Themen