我已经为输入字段的占位符功能编写了一个函数。如果我单独编写开/关函数,它会起作用,但在保持输入变量和if
构造时它不起作用。请帮助解决语法或逻辑方面的错误。
function placeholder(x) {
if (x=="1") {
if (document.getElementById("search_field").value=="") {
document.getElementById("placeholder").style.display="inline";
}
}
else {
document.getElementById("placeholder").style.display="none";
document.getElementById("search_field").focus();
}
}
<input id="search_field" type="text" value="" onfocus="placeholder(0);" onblur="placeholder(1);">
<span id="field_def" onclick="placeholder(0);" >
<img src="mag.jpg">
<p id="placeholder">Search</p>
</span>
答案 0 :(得分:1)
在评估x时尝试不使用引号1:
function placeholder(x){
if(x==1){
if(document.getElementById("search_field").value==""){
document.getElementById("placeholder").style.display="inline";
}
}
else{
document.getElementById("placeholder").style.display="none";
document.getElementById("search_field").focus();
}
}
此外,删除&#34;;&#34;在调用函数时:
<span id="field_def" onclick="placeholder(0)">
答案 1 :(得分:1)
您可以使用placeholder
属性。它被所有主流现代浏览器接受,可以帮助您免于添加额外的HTML标记和JavaScript代码。
<input type="text" name="someName" placeholder="Some Text">
以下是无法识别placeholder
的旧版浏览器的替代方法:
<强> DEMO 强>
<强> HTML:强>
<input id="search_field" type="text" value="Enter keywords..." onfocus="ph(1);" onblur="ph(0);" onclick="ph(1);">
<强> JavaScript的:强>
function ph(x) {
var txtSearch = document.getElementById("search_field");
if (x == 1) {
if (txtSearch.value == "Enter keywords...") {
txtSearch.value = '';
}
}
else {
if (txtSearch.value == "") {
txtSearch.value = 'Enter keywords...';
}
}
}
答案 2 :(得分:0)
检查功能是否被调用。
如果没有,那就改变它:
<input id="search_field" type="text" value="" onfocus="javascript:placeholder(0)" onblur="javascript:placeholder(1)">