我最近为我的网站创建了一个新表单,标签内置于表单字段中 - 例如" Title"一,当你在这个网站上提问时。
您可以在此处查看:http://utilitiessavings.co.uk/business-energy/business-electricity/(向下滚动)
一旦场地聚焦,我最初让标签消失了,但是决定在用户开始输入之前离开它会更好,因为否则他们可能会忘记该字段的实际用途
唯一的问题是插入符号在标签文本中,并且当您开始输入时它不会消失。
这是我的代码(是的,被黑客攻击):
var keypressed = false;
// for each input field with a title
$('input[title], textarea[title]').each(function() {
// if it has no value
if($(this).val() === '' || $(this).attr('title'))
{
// add the labeled class
$(this).addClass('labeled');
// set the value to the title
$(this).val($(this).attr('title'));
}
// when focused
$(this).focus(function()
{
// select the whole field
$(this).select();
// if the value is the label/title
if($(this).val() === $(this).attr('title'))
{
// wait for keypress
$(this).keypress(function() {
// if first key pressed
if(keypressed == false)
{
// clear the field and remove labeled class
$(this).removeClass('labeled').val('');
// set keypressed to true so next keypress doesn't clear field again
keypressed = true;
}
});
}
}).click(function()
{
// select the whole field
$(this).select();
});
// when undocused
$(this).blur(function() {
// if blank
if($(this).val() === '') {
// add labeled class and title/label
$(this).addClass('labeled').val($(this).attr('title'));
}
else
{
if($(this).val() === $(this).attr('title'))
{
$(this).addClass('labeled');
}
}
// set keypressed to false for next field
keypressed = false;
});
});
你会注意到我已经把select()onfocus和onclick放了,但它仍然无法正常工作。很奇怪。有人请告诉我们是否需要它,或者我是否应该像stackoverflow.com那样问一个问题框?
任何帮助都非常感谢,并且对于漫无目的而感到遗憾,但我总觉得提供更多不足的信息会更好:)
全心全意,
德鲁