Javascript 输入不起作用的函数

Javascript 输入不起作用的函数,javascript,css,Javascript,Css,我已经为输入字段的占位符功能编写了一个函数。如果我单独编写开/关函数,它就可以工作,但是当保留输入变量和ifconstruct时,它就不工作了。请帮助了解语法或逻辑方面的错误 function placeholder(x) { if (x=="1") { if (document.getElementById("search_field").value=="") { document.getElementById("placeholder").st

我已经为输入字段的占位符功能编写了一个函数。如果我单独编写开/关函数,它就可以工作,但是当保留输入变量和
if
construct时,它就不工作了。请帮助了解语法或逻辑方面的错误

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();
    }
}


搜索


在计算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();
    }
}
调用函数时,请删除“;”:

<span id="field_def" onclick="placeholder(0)">
<input id="search_field" type="text" value="Enter keywords..." onfocus="ph(1);" onblur="ph(0);" onclick="ph(1);">
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...';
        }
    }
}


您只需使用
占位符
属性即可。它被所有主要的现代浏览器所接受,并且可以避免您添加额外的HTML标记和JavaScript代码

<input type="text" name="someName" placeholder="Some Text">
JavaScript:

<span id="field_def" onclick="placeholder(0)">
<input id="search_field" type="text" value="Enter keywords..." onfocus="ph(1);" onblur="ph(0);" onclick="ph(1);">
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...';
        }
    }
}

检查是否调用了该函数

如果没有,则进行更改:

<input id="search_field" type="text" value="" onfocus="javascript:placeholder(0)" onblur="javascript:placeholder(1)">


它与html5之后的旧浏览器不兼容。我看到很多网站同时使用占位符属性和javascript,它们在支持html5的浏览器上相互重叠。我们必须再次检查兼容性并使用合适的浏览器。你不觉得这太费劲了吗?@Sagi_Avinash_Varma查看了旧浏览器兼容性的编辑。