Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在按钮上显示div单击javascript_Javascript - Fatal编程技术网

在按钮上显示div单击javascript

在按钮上显示div单击javascript,javascript,Javascript,我有一个默认不可见的div。我想,当按钮点击时,它就会出现。 我试过了,但问题是它只显示几秒钟,然后又隐藏起来 这是我的密码: function validate() { var ta = document.getElementById("t").value; var oa = document.getElementById("oa").value; var ob = document.getElementById("ob").value; var oc = do

我有一个默认不可见的div。我想,当按钮点击时,它就会出现。
我试过了,但问题是它只显示几秒钟,然后又隐藏起来

这是我的密码:

function validate() {
    var ta = document.getElementById("t").value;
    var oa = document.getElementById("oa").value;
    var ob = document.getElementById("ob").value;
    var oc = document.getElementById("oc").value;
    var od = document.getElementById("od").value;


    if (ta == "") {
        alert("Title can't be null");
        document.getElementById("t").style.borderColor = "#E34234";
        return false;
    }

    if (oa == ""  &&  ob == "") {
        alert("Atleast two options are compulsory");
        document.getElementById("oa").style.borderColor = "#E34234";
        document.getElementById("ob").style.borderColor = "#E34234";
        return false;
    }

    document.getElementById("g").style.visibility="visible";
    return true;

}

Div id是
'g'
,在提交按钮时调用
函数validate()
,它验证表单并显示Div。

返回false而不是true。它将停止页面刷新,并且div不会被隐藏。另外,如果需要页面刷新,只需将GET参数与url一起传递,在加载页面时,检查GET参数,如果已设置,则默认情况下使div可见

function validate() {
    var ta = document.getElementById("t").value;
    var oa = document.getElementById("oa").value;
    var ob = document.getElementById("ob").value;
    var oc = document.getElementById("oc").value;
    var od = document.getElementById("od").value;


if (ta == "") {
    alert("Title can't be null");
    document.getElementById("t").style.borderColor = "#E34234";
    document.getElementById("g").style.visibility="visible";

    return false;
}

if (oa == ""  &&  ob == "") {
    alert("Atleast two options are compulsory");
    document.getElementById("oa").style.borderColor = "#E34234";
    document.getElementById("ob").style.borderColor = "#E34234";
    document.getElementById("g").style.visibility="visible";
    return false;
}

return true;
}

这样,只有验证失败时才会显示div。如果您想提交表单并保持div可见,则需要使用带有get参数的方法,或者需要使用ajax。

我在这里猜测一下,并假设表单正在提交,因此您会看到div在几秒钟内可见。您应该使用以下代码:

function validate() {
    var ta = document.getElementById("t").value;
    var oa = document.getElementById("oa").value;
    var ob = document.getElementById("ob").value;
    var oc = document.getElementById("oc").value;
    var od = document.getElementById("od").value;

    var flag = false; // initially assume that all is well


    if (ta == "") {
        alert("Title can't be null");
        document.getElementById("t").style.borderColor = "#E34234";
        flag = true; // something wrong, flag it
    }

    if (oa == ""  &&  ob == "") {
        alert("Atleast two options are compulsory");
        document.getElementById("oa").style.borderColor = "#E34234";
        document.getElementById("ob").style.borderColor = "#E34234";
        flag = true; // something wrong, flag it
    }

    if(flag) // if something wrong, show div and disable form submit
    {
       document.getElementById("g").style.visibility="visible";
       return false;
    }

    return true;

}

我们在这里所做的是创建一个标志来检查其最后的值。如果
为true
,则表示表单上存在错误,因此应禁用表单提交。如果没有,则不会出现错误,表单提交可以照常进行。

如果运行此
validate()
函数,则应显示id为
g
的div。这里没有代码可以隐藏它。或者是否发生了页面刷新?代码中没有隐藏HTML元素的内容。你能提供一个JFIDLE来重现你的问题并进行进一步的调试吗?我猜您的问题中缺少了一些重要的部分。单击“提交按钮”提交表单,页面将被刷新。如果不查看HTML的结构以及如何调用
validate
,所有回答的尝试充其量只是猜测。返回false将使表单无效。返回false应该是有条件的,但它阻止表单提交。是的,它应该这样做。如果您希望提交表单,则需要将其包装在条件中。编辑我的答案,1分钟
document.getElementById(“g”).style.visibility=“visible”这是因为每个验证失败的条件都需要存在。或者你可以把它放在函数的开头,或者你可以使用另一个答案中建议的标志。标志是一个很好的选择,但代码重复和变量开销是缺点。把它放在一开始不是一个好的做法。它必须是有条件的,应该是这样的。