如果内容安全策略,则无法读取 null 的属性"值"



当我在cordova 5.1应用程序中使用白名单插件时,我无法获得输入文本值,我收到错误"Uncaught TypeError:无法读取null的属性'value'"。请帮助我。

我已经添加了我的代码。

<html>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
document.getElementById("loginsubmit").addEventListener("click", validationCheck(),false);
    function validationCheck() {
      alert("name =" +  document.getElementById('username').value);
    }
</script>
<head>
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

</head>
<body>
    <form  method="post" class="login_forms">
        <div class="loginform">
            <div class="user">
                <label class="usericon">UserName:</label>
                <input type="text" id="username" name="username" size="20px">
            </div>
            <div class="pass">
                <label class="passicon">Password:</label>
                <input type="password" id="password" name="password"  size="20px">
            </div>
                   <div class="submit_btn">
                <input type="button" class="loginsubmit" id="loginsubmit" name="loginsubmit" value="Login">
                <input type="submit" class="logincancel" id="logincancel" value="Cancel">
            </div>
        </div>
    </form>
    </body>
    </html>

您的代码试图在元素呈现到页面之前引用它。这就像在做玉米卷之前试着吃一个玉米卷,或者就像在一个人到达你的聚会之前喊他的名字。

您需要等待元素被渲染。因此,您需要将脚本放在正文的末尾,或者在文档就绪时调用它,或者在窗口加载时调用它。

下一个问题是,您正在调用validationCheck,而不是引用它

document.getElementById("loginsubmit").addEventListener("click", validationCheck(),false);
                                                                               ^^^^

需要

document.getElementById("loginsubmit").addEventListener("click", validationCheck,false);

最新更新