Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Javascript if语句在此代码中不起作用_Javascript_Html - Fatal编程技术网

Javascript if语句在此代码中不起作用

Javascript if语句在此代码中不起作用,javascript,html,Javascript,Html,以下函数的if语句永远不会执行,即使我已经填充了文本字段和 密码字段。在if语句之前,alert函数工作正常,但在if语句之后,alert函数工作正常 if语句永远不起作用 以下是函数: <script type="text/javascript"> function CheckForMissingFields() { alert("before if statement"); if(document.getElementById("usern

以下函数的if语句永远不会执行,即使我已经填充了文本字段和 密码字段。在if语句之前,alert函数工作正常,但在if语句之后,alert函数工作正常 if语句永远不起作用

以下是函数:

<script type="text/javascript">
    function CheckForMissingFields() {
        alert("before if statement");
        if(document.getElementById("username").length != 0 && document.getElementById("password").length != 0) {
            document.getElementByName("SignInButton").disabled = 'false';
            alert("inside if statement");
        }
        alert("outside if statement");
    } 
怎么样

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}
只需创建如上所述的函数,该函数修剪字符串中的空间,然后替换您的if条件,如下所示即可

    if(trim(document.getElementById("username").value) != "" && 
       trim(document.getElementById("password").value) != "") 
怎么样

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}
只需创建如上所述的函数,该函数修剪字符串中的空间,然后替换您的if条件,如下所示即可

    if(trim(document.getElementById("username").value) != "" && 
       trim(document.getElementById("password").value) != "") 
getElementById生成一个DOM节点。在您的例子中,输入字段是一个。它没有length属性,但它的值有。

getElementById生成一个DOM节点。在您的例子中,输入字段是一个。它没有长度属性,但它的值有。

使用:if document.getElementByIdusername.value.length等。换句话说,您需要字段的值

没有必要=顺便说一下,如果value.length==0,则value.length的计算结果将为false

在检查“值长度”之前,您可能希望更改该值,因此:

if (document.getElementById("username").value.replace(/^\s+|\s+$/,'').length)
用法:如果document.getElementByIdusername.value.length等,换句话说,您需要该字段的值

没有必要=顺便说一下,如果value.length==0,则value.length的计算结果将为false

在检查“值长度”之前,您可能希望更改该值,因此:

if (document.getElementById("username").value.replace(/^\s+|\s+$/,'').length)

您正在尝试获取html标记的长度。我认为您应该获取输入字段的内容

像这样:

if(document.getElementById("username").value.length != 0 && 
    document.getElementById("password").value.length != 0)

这回答了最初的问题。然后,如果您想让一个空格被认为是空的,那么应该使用一个函数,在获取字符串长度之前修剪掉一些空格,如jQuery.trim。

您正在尝试获取html标记的长度。我认为您应该获取输入字段的内容

像这样:

if(document.getElementById("username").value.length != 0 && 
    document.getElementById("password").value.length != 0)

这回答了最初的问题。然后,如果你想让一个空格被认为是空的,那么你应该使用一个函数,在计算字符串的长度之前修剪掉一些空格,比如jQuery.trim

CheckForMissingFields()

功能来自?如果你不这么说,你就永远不会看到If语句起作用。此外,每次文本框更改时都需要重新计算,因此请尝试将该函数绑定到更改事件或模糊事件。

我很困惑:您在哪里调用您的

CheckForMissingFields()

功能来自?如果你不这么说,你就永远不会看到If语句起作用。此外,每次文本框更改时,您都需要重新计算,因此请尝试将该函数绑定到更改事件或模糊事件。

@PranayRana如果有微调,则会。那是另一个问题。虽然没有必要这样做=0,也没有什么问题。事实上,我发现有了它,你就有了更多的语义代码。@Jasper:你是对的,没有什么错。不确定它是否真的更具语义代码的比较。也许你是说可读性更好?无论如何,使用比较,我会使用!==@KooiInc,也许它没有那么多语义或可读性,但我只是注意到,我觉得它更语义或可读性,表明有一些论点需要保留它。“严格检查,你当然是对的。”呼吸调节器如果有修剪,它会的。那是另一个问题。虽然没有必要这样做=0,也没有什么问题。事实上,我发现有了它,你就有了更多的语义代码。@Jasper:你是对的,没有什么错。不确定它是否真的更具语义代码的比较。也许你是说可读性更好?无论如何,使用比较,我会使用!==@KooiInc,也许它没有那么多语义或可读性,但我只是注意到,我觉得它更语义或可读性,表明有一些论点需要保留它。关于严格检查,你当然是对的。@Pranay:define fail。在我看来,这正是OP想要的。当然,我们可以假设OP也希望在他的登录框上有圆角,但这和空格一样,超出了问题的范围。@Pranay:define fail。在我看来,这正是OP想要的。当然,我们可以假设OP也希望在他的登录框上有圆角,但这和空格一样,超出了问题的范围。大概,在提交时调用它就足够了。我们知道会显示第一个警报,因此调用函数在这里不是问题。不过,他不能在不调用该函数的情况下提交警报。如果我正确阅读了该代码,该函数将启用submit按钮。你是对的,它可能不会在提交时被调用,但不管怎样,我们知道它正在被调用,这不是问题所在。尽管如此,重新评估的必要性仍然是一个有效的评论。据推测,在提交时调用它就足够了。我们知道会显示第一个警报,因此函数的调用不是一个is
sue在这里。他不能在不调用该函数的情况下提交它。如果我正确阅读了该代码,该函数将启用submit按钮。你是对的,它可能不会在提交时被调用,但不管怎样,我们知道它正在被调用,这不是问题所在。不过,重新评估的必要性仍然是一个有效的评论。