使用占位符提交表单,首次单击jQuery时不会触发颜色

时间:2011-07-16 20:56:23

标签: jquery forms validation submit placeholder

所以我有一个给我两个问题的表格
1。当我单击提交按钮一次时,验证消息被触发(好),但占位符的文本颜色不会改变,如果我单击它两次,它会完美地改变。我需要在第一次更改它,只要有错误,它应该改变。

2。假设您为name添加任何值,例如,字母e,然后点击提交两次,占位符文本将覆盖输入的内容。我需要没有占位符显示在文本上,因为那里有一个值。

这是我的小提琴http://jsfiddle.net/Lqb6q/

知道如何解决这个问题吗?

2 个答案:

答案 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);
        }
    });
});

See it in action

答案 1 :(得分:0)

这个问题可能是每个'输入'都有两个'label'元素。虽然官方HTML规范允许这样做,但用户代理显示此问题存在一些问题。看看here

尝试用span或div替换其中一个标签。