所以我有一个给我两个问题的表格
1。当我单击提交按钮一次时,验证消息被触发(好),但占位符的文本颜色不会改变,如果我单击它两次,它会完美地改变。我需要在第一次更改它,只要有错误,它应该改变。
2。假设您为name添加任何值,例如,字母e,然后点击提交两次,占位符文本将覆盖输入的内容。我需要没有占位符显示在文本上,因为那里有一个值。
这是我的小提琴http://jsfiddle.net/Lqb6q/
知道如何解决这个问题吗?
答案 0 :(得分:2)
问题在于您正在侦听点击事件,而应该正在侦听提交事件。
改变这个:
$('#submit-ticket').click(function() {
if($('input').hasClass('error')) {
$("label.overlabel-apply").css('cssText', 'color: red !important');
}
});
到此:
$('#ticket-form').submit(function() {
if($('input').hasClass('error')) {
$("label.overlabel-apply").css('cssText', 'color: red !important');
}
$('input').each(function(){
if($(this).val().length){
hideLabel($(this).attr('id'), true);
}
});
});
答案 1 :(得分:0)
这个问题可能是每个'输入'都有两个'label'元素。虽然官方HTML规范允许这样做,但用户代理显示此问题存在一些问题。看看here。
尝试用span或div替换其中一个标签。