在使用$(this).addClass('errorClassText')
在jQuery移动中时,无法更改样式。我确实需要使用$(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>
发布于 2013-11-14 01:57:23
使用key up event
而不使用click
,
$(document).on('pageinit ready', function(){
$(".form2 input").keyup(function(){
$(this).addClass('errorClassText')
});
});
更新,,如果你想用addClass
来获取像doorno
这样的particular input element
,然后尝试,
$('#doorno').on('keyup',function(){
$(this).addClass('errorClassText')
});
发布于 2013-11-14 02:03:30
当用户释放键盘上的键时,keyup事件将发送给元素。但是,在您的实例中,您试图在单击事件(单击.form2输入)内触发。因此,我可以想象,您的代码目前正在寻找在用户单击字段时键盘上的键的发布。不会发生的。
如果在click函数和keyup函数之外添加了控制台日志,在keyup函数中添加了另一个控制台日志,那么您应该能够看到正在触发什么以及何时触发(我认为keyup函数根本没有被触发)。
代码片段中似乎没有任何东西会向输入中添加任何内联样式(这将是不使用错误样式的另一个原因,因为这些样式将覆盖分配给新类的样式)。
试试这个:
$(document).on('pageinit ready', function(){
$(".form2 input").keyup(function(){
$(this).addClass('errorClassText')
});
});
https://stackoverflow.com/questions/19974483
复制