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
-当第一次碰到它时,我很惊讶它是多么简单。:)