繁体   English   中英

需要有关JavaScript错误的指导UnCaught TypeError

[英]Need guidance with javascript error UnCaught TypeError

我在使用用于注册表格的javascript时遇到问题,我的JavaScript的这一行之后出现UnCaught TypeError:无法读取null的属性“值”:

tf.value = tf.value.replace(rx, ""); 

并且在这行javascript之后:

  var m = _("mobileNumber").value.length;

这是我的JavaScript和表格:

<script>
    function restrict(elem){
    var tf = _(elem);
    var rx = new RegExp;
    if(elem === "email"){
        rx = /[' "]/gi;
    } else if(elem === "username"){
        rx = /^[a-z0-9]i*$/;
    } else if(elem === "mobileNumber"){
            rx = /^[0-9]*$/;
        }
    tf.value = tf.value.replace(rx, "");
}
function emptyElement(x){
    _(x).innerHTML = "";
}
function checkusername(){
    var u = _("username").value;
    if(u !== ""){
        ("unamestatus").innerHTML = 'checking ...';
        var ajax = ajaxObj("POST", "signup.php");
        ajax.onreadystatechange = function() {
            if(ajaxReturn(ajax) === true) {
              ("unamestatus").innerHTML = ajax.responseText;
            }
        };
        ajax.send("usernamecheck="+u);
    }
}
function signup(){
    var u = _("username").value;
    var e = _("email").value;
      var m = _("mobileNumber").value.length;
    var p1 = _("pass1").value;
    var p2 = _("pass2").value;
    var ci = _("city").value;
      var pc = _("postcode").value;
      var c = _("country").value;
      var d = _("dateOfBirth").value;
    var g = _("gender").value;
    var status = _("status");
    if(u === "" || e === "" || p1 === "" || p2 === "" || c === ""
        || g === "" || m === "" || ci === "" || pc === "" || d === ""  ){
        status.innerHTML = "Fill out required fields";
    } else if(p1 !== p2){
        status.innerHTML = "Your password fields do not match";
        }else if(m !== 11 && !IsNumeric(m)){ 
        status.innerHTML = "Please enter valid mobile number";
         }else if(d === "dd/mm/yyyy"){ 
        status.innerHTML = "Please enter your date of birth";

    } else {
             //ajax to send form data to php
        //hides sign button
                _("signupbtn").style.display = "none";
        status.innerHTML = 'please wait ...';
                //wait until php verifies data
        var ajax = ajaxObj("POST", "signup.php");
        ajax.onreadystatechange = function() {
            if(ajaxReturn(ajax) === true) {
           //if sign not succesful unhide button
                    if(ajax.responseText !== "signup_success"){
                    status.innerHTML = ajax.responseText;
                    _("signupbtn").style.display = "block";
                } else {

功能

function _(x){
    return document.getElementById(x);
}

形成

<form name="signupform" id="signupform" onsubmit="return false;">
    <div>Username: </div>
    <input id="username" type="text" onblur="checkusername()" onkeyup="restrict('username')"       maxlength="16">
    <span id="unamestatus"></span>
    <div>Email Address:</div>
    <input id="email" type="email" onfocus="emptyElement('status')" onkeyup="restrict('email')" maxlength="88">
    <div>Create Password:</div>
    <input id="pass1" type="password" onfocus="emptyElement('status')" maxlength="16">
    <div>Confirm Password:</div>
    <input id="pass2" type="password" onfocus="emptyElement('status')" maxlength="16">
     <div>First name:</div> 
     <input id="firstName" type="text"  /><br />
     <div>Last name:</div> 
     <input id="lastName" type="text"   /><br />
     <div>Mobile number*:</div>
     <input name="mobileNumber" onfocus="emptyElement('status')" onkeyup="restrict('mobileNumber')" maxlength="16">
    <div>Gender:</div>
    <select id="gender" onfocus="emptyElement('status')">
      <option value=""></option>
      <option value="Male">Male</option>
      <option value="Female">Female</option>
    </select>
    <div>Country:</div>
    <select id="country" onfocus="emptyElement('status')">
      <?php include_once("country_list.php"); ?>
    </select>
    <div>City:</div>
    <input id="city" onfocus="emptyElement('status')">
    <div>Postcode:</div>
    <input id="postcode" onfocus="emptyElement('status')">
    <div>Relationship Status*:</div>
    <select id="relationshipStatus" >
        <option value=""></option>
        <option value="Single">Single</option>
        <option value="Taken">Taken</option>            
                </select>
    <div>Date of Birth*:</div>
    <input id="dateOfBirth" type="date" onfocus="emptyElement('status')">
    <button id="signupbtn" onclick="signup()">Create Account</button>
    <span id="status"></span>
  </form>

在第一种情况下, tf变量为null。 由于仅在声明变量时才设置变量,这意味着_(elem)返回null。

在第二种情况下,函数调用_(“ mobileNumber”)返回null。

如果您不发布_函数,则可以告诉更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM