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

使用key up eventclick喜欢,

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

更新了,想点addClassparticular input elementdoorno试试

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

当用户在键盘上释放一个键时,keyup 事件被发送到一个元素。但是,在您的实例中,您试图在点击事件中触发(点击 .form2 输入)。因此,我想您的代码当前正在寻找在用户单击该字段时释放键盘上的键。不会发生。

如果您在 click 函数内部和 keyup 函数外部添加一个控制台日志,并且在 keyup 函数内部添加一个不同的控制台日志,您应该能够看到被触发的内容和时间(我不认为keyup 功能正在被触发)。

您的代码片段中似乎没有任何内容可以将任何内联样式添加到输入中(这将是看不到应用错误样式的另一个原因,因为这些样式会覆盖分配给新类的样式)。

尝试这个:

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