-5

http://jsfiddle.net/just4upvp/Gt8TY/1/

私は JavaScript を初めて使用し、コードでエラーを見つけることができません。validateForm は機能していましたが、現在は機能していません。助けてください。

 <script type="text/javascript">
    function validateForm() {
        if (document.enrollment.cfname.value == "") {
          errcfname.innerHTML = "Please enter firstname";
          return false;
          }
    }
    function validate(id,error) {
        var value = document.getElementById(id).value;
        var err = document.getElementById(error);
        if(!value) {
            err.innerHTML = "*required";
        } else {
            err.innerHTML = "*";
        }
    }
</script>





<form  name="enrollment" method="post" action="confirmation.php"   
       enctype="multipart/form-data" onsubmit="return (validateForm());"> 
<label for="cfname">First Name:</label>
<input type="text" id="cfname" name="cfname" size="20" maxlength="15" 
       autofocus="autofocus" required="required"
       onblur="validate(this.id,'errcfname')"/>
<span class="error1" id="errcfname">*</span>
4

1 に答える 1

0

undefined戻り値が定義されていない場合、JavaScript 関数は戻ります。編集: 2 番目の問題については、DOM を操作するときに getElementById の方がはるかに信頼性が高くなります。

次のように validateForm() 関数を変更します -

function validateForm() {
    if (document.getElementById('cfname').value === '') {
      document.getElementById('errcfname').innerHTML = "Please enter firstname";
      return false;
    }
    return true;
}

参照 - http://javascript.crockford.com/survey.html

JavaScript には void 型がないため、すべての関数は値を返す必要があります。デフォルトの戻り値が this であるコンストラクターを除いて、デフォルト値は未定義です。

于 2013-10-20T21:28:24.123 に答える