2012-09-10 74 views
0

我希望能夠在$(「form」).validate期間將一個星號添加到文本框的末尾。我可以用$(element).after(「」);但如果鍵入文本或條目是正確的,我該如何優雅地刪除它。 jQuery劑量有一個$(元素).remove(「」);任何幫助,這將是非常棒的。jQuery Validation .after()

+0

換行,然後在該字段有效時刪除該元素。 –

+0

在一個範圍內添加*並給它一個類名或ID。然後在文本框的Keyup事件中,您可以檢查該值是否正確,然後隱藏或刪除該跨度。 –

回答

1

你可以嘗試把它放在一個元素,你再刪除:

$(element).after('<span id="remove_me">*</span>'); 

,並用它來刪除它

$('#remove_me').remove(); 

可以也有已存在的元素,但用css display:none;隱藏,然後使用.show()在驗證表單需要時顯示它,並且.hide()將其刪除。

+0

這似乎是對我來說最好的選擇,唯一我做的是不同的是讓跨度friendlier id:'$(element).after(「 *」);'並刪除它,我可以使用'$(「sp_」+ $(element).attr(「id」))。remove();'感謝所有人的幫助。 – thechrisberry

0

HTML

<input type="text" /><span id="error">*</span> 

CSS

#error { display:none; } 

JS

if(valid) ? $('#error').hide() : $('#error').show(); 

就像評論所說,你可以檢查這款V通過任何js事件進行修改;最著名的可能是keyup或形式submit

0

只是作爲一個例子,你必須插入添加和需要的地方在您的驗證刪除:

jsfiddle

$('.required').on('click', function() { 
    $(this).next().remove(); 
}).after('<span>*</span>'); 
0

檢查該解決方案

$('#btn1').on('click', function() { 
    $('.error').remove(); 
    $('#txt1').after('<span class="error">*</span> '); 
    hideError(); 
}); 

$('#txt1').on('change', function() { 
    hideError(); 
}); 

function hideError() { 
    if ($('#txt1').val() == 'hello') { 
     $('.error').hide(); 
    } 

} 

選中此FIDDLE對於工作示例..