1

$(this).addClass('errorClassText') jQuery mobile で使用する場合、スタイルを変更できません。バリデーションを適用したいフォームフィールドがいくつかあるので、実際に $(this) を使用する必要があります。誰かが私が間違っている可能性がある場所を提案してもらえますか?

jQuery スクリプト:

<script>
    $(document).on('pageinit', function(){
        $(".form2 input").click(function() {    
            $(this).keyup(function()
                {
                    $(this).addClass('errorClassText')
                });
        }); 
    });

</script>

CSS スタイルの HTML コード:

<!DOCTYPE html>

<html>
<head>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

<style>
        .errorClassText{
            color: #ff6666;
        }
</style>
</head>

<body> 
<form class='form2' name= "form" action="">       
    <input type="text" name="buildingname" id="house_name" >
    <label id="house_name_error" for= "house_name"></label>
    <input type="text" name="doorno" id="doorno" >
    <label class= "" id="doorno_error" for= "doorno"></label>
    <button type="submit" class="button" id="submit_btn" name="submit" >Submit</button>
</form>

</body>
</html>
4

2 に答える 2

0

keyup イベントは、ユーザーがキーボードのキーを離したときに要素に送信されます。ただし、インスタンスでは、クリックイベント内でトリガーしようとしています(.form2入力のクリック時)。したがって、ユーザーがフィールドをクリックした時点で、コードが現在キーボードのキーのリリースを探していると思います。起こらない。

クリック機能の内側とキーアップ機能の外側にコンソールログを追加し、キーアップ機能の内側に別のコンソールログを追加すると、何がいつトリガーされているかを確認できるはずです( keyup 関数はまったくトリガーされています)。

コードのスニペットには、入力にインライン スタイルを追加するものはないようです (これは、新しいクラスに割り当てられたスタイルをオーバーライドするため、適用されたエラー スタイルが表示されないもう 1 つの理由です)。

これを試して:

    $(document).on('pageinit ready', function(){
            $(".form2 input").keyup(function(){
                    $(this).addClass('errorClassText')
            });
    });
于 2013-11-14T10:03:30.533 に答える
0

好きにkey up event使わずclickに、

$(document).on('pageinit ready', function(){
    $(".form2 input").keyup(function(){
         $(this).addClass('errorClassText')
    });
});

更新しaddClassたい場合はparticular input elementdoorno試してみてください。

 $('#doorno').on('keyup',function(){
    $(this).addClass('errorClassText')
 });
于 2013-11-14T09:57:23.473 に答える