JavaScript在模糊时将默认值填充回文本字段
我有个问题。当用户将文本留空时,我希望文本以默认值填充。这是我的代码。请帮我解决这个错误JavaScript在模糊时将默认值填充回文本字段,javascript,Javascript,我有个问题。当用户将文本留空时,我希望文本以默认值填充。这是我的代码。请帮我解决这个错误 <html> <head> <title> </title> <script lang='javascript'> function makeBlank(obj,defMsg){ if(obj.value==defMsg){ obj.value=""; } } function fillDefValue(obj,de
<html>
<head>
<title>
</title>
<script lang='javascript'>
function makeBlank(obj,defMsg){
if(obj.value==defMsg){
obj.value="";
}
}
function fillDefValue(obj,defMsg){
if(obj.value==""){
obj.value=defMsg;
}
}
</script>
</head>
<body>
<input style="width:190px" onblur="fillDefValue(this,'User Name')" onfocus="makeBlank(this,'User Name')" value="Name" name="fromname" id="fromname" type="text">
</body>
</html>
函数makeBlank(obj,defMsg){
如果(对象值==defMsg){
obj.value=“”;
}
}
函数fillDefValue(obj,defMsg){
如果(对象值==“”){
对象值=defMsg;
}
}
您可能正在查找占位符
HTML属性
<input placeholder="e.g. username42">
您只需要使用JavaScript作为旧浏览器的后备方案。这里有一个演示:您可能正在查找
占位符
HTML属性
<input placeholder="e.g. username42">
您只需要使用JavaScript作为旧浏览器的后备方案。这里有一个演示:您的代码有一个小错误。使文本字段为空或用默认值填充的函数有一个if语句,用于检查条件
if(obj.value==defMsg)
,即defMsg='User Name'
。但是在文本字段中,您分配的是value=“Name”
,因此if条件永远不会变为真。这就是你的代码不起作用的原因。您可以使用
,也可以将这两个函数都调用为
。执行这两个更改中的任何一个,代码都可以正常工作。这是我提到的第一个更改的代码:
<html>
<head>
<title>
</title>
<script lang='javascript'>
function makeBlank(obj,defMsg){
if(obj.value==defMsg){
obj.value="";
}
}
function fillDefValue(obj,defMsg){
if(obj.value==""){
obj.value=defMsg;
}
}
</script>
</head>
<body>
<input style="width:190px" onblur="fillDefValue(this,'User Name')" onfocus="makeBlank(this,'User Name')" value="User Name" name="fromname" id="fromname" type="text">
</body>
</html>
函数makeBlank(obj,defMsg){
如果(对象值==defMsg){
obj.value=“”;
}
}
函数fillDefValue(obj,defMsg){
如果(对象值==“”){
对象值=defMsg;
}
}
您的代码有一个小错误。使文本字段为空或用默认值填充的函数有一个if语句,用于检查条件if(obj.value==defMsg)
,即defMsg='User Name'
。但是在文本字段中,您分配的是value=“Name”
,因此if条件永远不会变为真。这就是你的代码不起作用的原因。您可以使用
,也可以将这两个函数都调用为
。执行这两个更改中的任何一个,代码都可以正常工作。这是我提到的第一个更改的代码:
<html>
<head>
<title>
</title>
<script lang='javascript'>
function makeBlank(obj,defMsg){
if(obj.value==defMsg){
obj.value="";
}
}
function fillDefValue(obj,defMsg){
if(obj.value==""){
obj.value=defMsg;
}
}
</script>
</head>
<body>
<input style="width:190px" onblur="fillDefValue(this,'User Name')" onfocus="makeBlank(this,'User Name')" value="User Name" name="fromname" id="fromname" type="text">
</body>
</html>
函数makeBlank(obj,defMsg){
如果(对象值==defMsg){
obj.value=“”;
}
}
函数fillDefValue(obj,defMsg){
如果(对象值==“”){
对象值=defMsg;
}
}
您不必将默认值传递给函数,它是textbox元素本身不可分割的一部分:
function makeBlank(obj) {
if(obj.value === obj.defaultValue){
obj.value = "";
}
}
function fillDefValue(obj) {
if(obj.value == "") {
obj.value = obj.defaultValue;
}
}
然后仅传递元素:
onblur="fillDefValue(this);" onfocus="makeBlank(this);"
-它适用于所有主要浏览器,可能适用于所有浏览器。您不必将默认值传递给函数,它是文本框元素本身不可分割的一部分:
function makeBlank(obj) {
if(obj.value === obj.defaultValue){
obj.value = "";
}
}
function fillDefValue(obj) {
if(obj.value == "") {
obj.value = obj.defaultValue;
}
}
然后仅传递元素:
onblur="fillDefValue(this);" onfocus="makeBlank(this);"
-它适用于所有主要浏览器,可能适用于所有浏览器。您的代码有一个错误,我正在更正它。该代码的行为与我预期的一样!您的代码有一个错误,我正在更正它。该代码的行为符合我的预期!谢谢,只是碰巧知道了
defaultValue
-当第一次碰到它时,我很惊讶它是多么简单。:)谢谢,只是碰巧知道了defaultValue
-当第一次碰到它时,我很惊讶它是多么简单。:)