Je veux que mon entrée ait toujours une valeur afin que le focus y soit fixé jusqu'à ce que les valeurs soient tapées et que le curseur ne puisse pas non plus échapper à l'entrée. Je sais que la fonction focus () existe, mais comment puis-je la gérer? C'est juste un événement n'est-ce pas? y-a-t'il une solution?

C'est le code html qui inclut l'entrée.

<div class="col-xs-3 vcenter from-group" id="info">
<div class="form-group">
    <label class="control-label" for="inputID">아이디</label><p style="display:inline; padding-left:60px; color:red; font-size: 12px">* 적어도 하나의 대문자, 소문자, 숫자를 포함한 6자~16자</p>
    <div class="controls">
        <input type="text" class="form-control"  name="inputID" id="inputID" placeholder="내용을 입력해 주세요" required autofocus>
    </div>
</div>

Il s'agit du script où l'entrée est liée aux événements.

<script>
jQuery('#inputID').keyup(blank_special_char_validation);
jQuery('#inputID').focusout(function(){
    if (!$(this).val()) {
        var message = "no id";
        error(this.id, message); // ** TODO : SET FOCUS HERE !!
    } else {
        id_form_validation(this.id);
    }
});

Pourriez-vous voir le ** TODO dans le code ci-dessus? Je veux ajouter une fonction que le focus est fixé jusqu'à ce que la valeur soit écrite.

S'il vous plaît, les gars pourraient-ils me donner une idée. Je vous remercie.

=================================================== =======================
Je veux concentrer mon apport dépend de la situation. Par exemple, je veux le concentrer lorsque la valeur n'existe pas ou que la validation ne corrige pas. Cependant, il doit se concentrer lorsque la valeur existe ou que la validation est vraie. Je peux enfin définir la mise au point, mais comment puis-je la déconcentrer? Je veux dire que je veux désactiver l'événement de mise au point.

jQuery('#inputID').on('blur',function(){
if (!$(this).val()) {
    var message = "아이디를 입력해 주세요";
    error(this.id, message);
    $(this).focus();
} else {
    //$(this).focus();
    if (!id_form_validation(this.id)) {
        $(this).focus();       // TODO : FOCUS
    }else {
        $(this).off('focus');   // TODO : FOCUS OUT
        $(this).off('blur');
    }
}
});
2
홍의숙 13 juil. 2015 à 09:16

2 réponses

Meilleure réponse

Vous pouvez utiliser ce code pour faire de même ... J'ai utilisé flou

//jQuery('#inputID').keyup(blank_special_char_validation);

jQuery('#inputID').focusout(function() {
  if (!$(this).val()) {
    $(this).focus();
    var message = "no id";
        error(this.id, message); 
  }else {
        id_form_validation(this.id);
    }
   
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-xs-3 vcenter from-group" id="info">
<div class="form-group">
    <label class="control-label" for="inputID">아이디</label><p style="display:inline; padding-left:60px; color:red; font-size: 12px">* 적어도 하나의 대문자, 소문자, 숫자를 포함한 6자~16자</p>
    <div class="controls">
        <input type="text" class="form-control"  name="inputID" id="inputID" placeholder="내용을 입력해 주세요" required autofocus>
    </div>
</div>
3
Bhavin Solanki 13 juil. 2015 à 07:05

Utilisez $(this).focus() pour concentrer votre saisie. focus() sans argument déclenchera cet événement sur un élément.

2
Liem Do 13 juil. 2015 à 06:26