1

入力の変更/検証時に、クラスを DIV に動的に変更 (追加) できるかどうかを尋ねています。たとえば、success と error という 2 つのクラスがあるとは言えません。HTML マークアップは基本的に次のとおりです。

<div class="control-group">
    <label class="control-label" for="inputFirstName">First Name: <span class="text-error">*</span></label>
    <div class="controls">
        <input type="text" id="inputFirstName" placeholder="John">
    </div>
</div>

したがって、入力に何らかの値を入力する場合 (PHP を介して検証を処理するため、正しいかどうかに関係なく)、クラスのsuccess後に、または入力が空のままになったときに書き込む必要があります。jQueryを使用してこれを行うにはどうすればよいですか?control-grouperror

4

3 に答える 3

2

focusoutメソッドを使用できます

$("#inputFirstName").focusout(function() {
    var isValid; //Set to either true or false
    isValid ? $(".control-group").addClass("success") : $(".control-group").addClass("error");
});
于 2013-04-09T18:45:42.173 に答える
2

何かのようなもの

$div = $(".control-group");
if($("#inputFirstName").length){
  $div.addClass('success');
}else{
   $div.addClass('error');
}  

フォーム送信またはtymeJVfocusoutによって与えられたような他の適切なイベントに追加します

于 2013-04-09T18:45:06.637 に答える
1

フォーム内のすべてのテキスト フィールドに対してこれを行うには (要求に応じて):

$('#formId input[type=text]').blur(function(e) {
    var input = $(e.target);
    if (input.val().length > 0) {
        input.addClass('success');
        input.removeClass('error');
    }
    else {
        input.addClass('error');
        input.removeClass('success');
    }
});

この jsFiddleを参照してください。

于 2013-04-09T21:55:04.940 に答える