2013-04-02 82 views
0

嗨,我有这个输入字段jQuery的输入字段值切换

<form action="" method="post"> 
    <input type="text" value="Type Your Email" name="field" class="field"/> 
    <input type="submit" value="Submit" class="submit" /> 
</form> 

林triying显示/隐藏的价值,当我点击领域。问题是,我忘了如何达到我试过的价值

$('.field').click(function(){ 

    $('.field value').toggle(); 

}); 

但它不工作。

回答

3

你不能显示或隐藏字段值,但你可以设置它。

你可能会寻找这样的事情:

$('.field').focus(function(){ 
    if($(this).val() == 'Type Your Email') { 
     $(this).val(''); 
    } 
}).blur(function() { 
    if($(this).val() == '') { 
     $(this).val('Type Your Email'); 
    } 
}); 

以上,该值被设置focusblur,而不是在单击时场,这样的代码,当你访问仍然有效该字段通过tab或其他方式。但是,我宁愿将您的注意力吸引到html5属性placeholder,这确实如此,但没有一些不良的副作用(例如,您的字段的value永远不会成为占位符文本)。

+1

'您的字段的值永远不会占位符文本,例如'。从来没有听说过这个。我总是在SO学习新东西。 +1。我不能重现它。你能制作一个小提琴吗? – Jashwant

+0

@Jashwant:是的,这就是占位符的作用([demo](http://jsfiddle.net/mYPa5/))。它不是一个正在设置和取消设置的值,它仅仅是一串在没有值的情况下显示的文本。 –

+0

正如Jashwant所说,“占位符”是这种情况下最好的实践。 +1占位符' – tiagojpdias

0

Demo

Placeholder attribute将是你的问题的最佳解决方案,但请注意

占位符属性,在Internet Explorer 10, 火狐,歌剧,铬,和Safari支持。 注意:Internet Explorer 9和更早版本不支持标记的占位符属性。

$('.field').on('focus',function(){ 

if($(this).val() == 'Type Your Email') { 
     $(this).val(''); 
    } 

}); 

$('.field').on('blur',function(){ 
    if($(this).val() == ""){ 
    $(this).val("Type Your Email"); 
    } 
}); 
0

我想你问的是这个

$('.field').on("focus", function() { 
    var txt = $(this); 
    if (txt.val() == "Type Your Email") 
     txt.val(""); 
}); 

$('.field').on("blur", function() { 
    var txt = $(this); 
    if (txt.val() == "") 
     txt.val("Type Your Email"); 
}); 

或者你可以使用Placeholder属性(但它不能在IE浏览器)

<input type="text" value="Type Your Email" 
     name="field" class="field" 
     placeholder="Type Your Email"/> 
1

你可以使用“占位符”

你会给里面什么将在文本字段中显示的占位符属性 如果您专注于将隐藏的文本字段。如果你注重了与输出类型,将显示占位符值

例子:

<form action="post"> 
    <input type="text" name="fname" placeholder="First name"><br> 
    <input type="text" name="lname" placeholder="Last name"><br> 
    <input type="submit" value="Submit"> 
</form> 
0

您可以使用纯JS

<input type="text" value="Type Your Email" onfocus="this.value=''" onblur="this.value='Type..'"  name="field" class="field"/> 

$(".field").focus(function(){ $(this).val='';}); 
$(".field").blur(function(){ $(this).val='Type something';}); 

这是好习惯在进行更改之前检查输入是否有价值,以便不清楚用户输入的字段。

更多信息,你可以找到 http://api.jquery.com/focus/http://api.jquery.com/blur/

0

试试这个http://jsfiddle.net/zander_pope/udu5cchh/

$(function() { 
    $('.button').on('click', function (e) { 
     if (!$('.dd').val()) { 
      $('.dd').val("relevance"); 
     } else { 
      $('.dd').val(""); 
     } 
    }); 
}); 
$(function() { 
    $('.button').on('click', function (e) { 
     $('.search').click(); 
    }); 
}); 

希望它能帮助!