我正在创建一个简单的表单,我有这个代码来清除初始值:
使用Javascript:
function clearField(input) {
input.value = "";
};
HTML:
<input name="name" id="name" type="text" value="Name" onfocus="clearField(this);"/>
但我不想要的是,如果用户填写输入但再次点击它,它将被删除。我希望该字段仅在输入为空时才具有起始值“Name”。提前谢谢!
答案 0 :(得分:10)
喜欢
<input name="name" id="name" type="text" value="Name"
onblur="fillField(this,'Name');" onfocus="clearField(this,'Name');"/>
和js
function fillField(input,val) {
if(input.value == "")
input.value=val;
};
function clearField(input,val) {
if(input.value == val)
input.value="";
};
这是同一个<{p>的demo fiddle
答案 1 :(得分:9)
以下是jQuery适用于不支持占位符属性的浏览器的解决方案。
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur();
在这里找到: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
答案 2 :(得分:2)
这可能是你想要的:
此代码在Enter your name here
文本框中放置默认文本字符串<input>
,并将文本颜色设置为浅灰色。
单击该框后,将清除默认文本并将文本颜色设置为黑色。
如果文本被删除,则替换默认文本字符串并重置浅灰色。
<强> HTML:强>
<input id="fname" type="text" />
<强>的jQuery / JavaScript的:强>
$(document).ready(function() {
var curval;
var fn = $('#fname');
fn.val('Enter your name here').css({"color":"lightgrey"});
fn.focus(function() {
//Upon ENTERING the field
curval = $(this).val();
if (curval == 'Enter your name here' || curval == '') {
$(this).val('');
$(this).css({"color":"black"});
}
}); //END focus()
fn.blur(function() {
//Upon LEAVING the field
curval = $(this).val();
if (curval != 'Enter your name here' && curval != '') {
$(this).css({"color":"black"});
}else{
fn.val('Enter your name here').css({"color":"lightgrey"});
}
}); //END blur()
}); //END document.ready
答案 3 :(得分:1)
HTML:
<input name="name" id="name" type="text" value="Name" onfocus="clearField(this);" onblur="fillField(this);"/>
JS:
function clearField(input) {
if(input.value=="Name") { //Only clear if value is "Name"
input.value = "";
}
}
function fillField(input) {
if(input.value=="") {
input.value = "Name";
}
}
答案 4 :(得分:0)
var input= $(this);
input.innerHTML = '';