2014-05-03 23 views
0

我有一個簡單的註冊表單。只要用戶輸入他的電話號碼並離開文本框(onblur),其他一些字段會自動填充,並使用對PHP腳本的Ajax調用,並且此作品正常工作。現在,我試圖在不同的文本字段上添加另一個onblur()事件,它與ajax調用或填充的字段無關,但是處於相同的形式。但是,當我在java腳本中創建這個函數時,事件不會被觸發。更重要的是,原來的ajax調用也停止工作,即電話號碼字段的onblur事件也不會被解僱(我通過提供一些警報消息來證實這一點)。我被卡住了,因爲我是新手的Web開發人員,這一直是一個煩躁的旅程。所以任何幫助或在正確的方向微調將不勝感激。Java腳本只有一個函數調用有效

我的java腳本代碼與我的HTML代碼位於相同的文件中,即標記之間。當我在相同的腳本標記之間創建兩個函數時,它們都不起作用,但是當我將它們放在單獨的腳本標記中時,第一個函數(電話號碼後面的ajax調用)在模糊上被觸發,但第二個函數不會。點的功能是:vldtnPhNo()和enabtnRegCmplt()。

<script type="text/javascript"> 

     function vldtnPhNo() 
     { 
     var xhr; 
     var dvPhNo = document.getElementById("divPhNo"); 

     if (window.XMLHttpRequest) { 
      xhr = new XMLHttpRequest();    

      var FoneNumb = document.getElementById("txtPhNo").value; 

      xhr.open("POST", "verify.php", true); 
      xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); 

      xhr.onreadystatechange=function() { 
       if (xhr.readyState==4 && xhr.status==200) { 

        document.getElementById("txtRegInv").value = xhr.responseText; 

        var rstOftheTxt = xhr.responseText; 


         document.getElementById("txtPhNo").value=rstOftheTxt; 
         document.getElementById("txtPhPop").value=rstOftheTxt; 
        } 
        else 
        { 
         document.getElementById("txtPhNo").value='waiting'; 
         document.getElementById("txtPhPop").value='waiting'; 
        } 
       } 
      } 

      xhr.send("txtPhNo=" + FoneNumb); 


     } 

     else 
     { 
      throw new Error("Ajax is not supported by this browser"); 
     } 
     } 


     function enabtnRegCmplt(){ 

     If(txtRegInv.value!="") 
     { 
     var UsrNm; 
     var Psswd; 
     var RePsw; 
     var PostBackInfo; 

     UsrNm = document.getElementById('txtUsrNm'); 
     Psswd = document.getElementById('txtPsw'); 
     RePsw = document.getElementById('txtrePsw'); 
     txtRegInv = document.getElementById('txtRegInv'); 

     If (RePsw.value!="" && Psswd.value!="" && UsrNm.value!="" && RePsw.value==Psswd.value) 
     { 
      document.getElementById('btnRegCmplt').disabled="False"; 
     } 
     else if(UsrNm.value=="") 
     { 
      UsrNm.value="Please Enter UserName"; 
     } 
     else if(Psswd.value=="") 
     { 
      Psswd.value="Please Enter Password"; 
     } 
     else if(RePsw.value=="") 
     { 
      RePsw.value="Does not match"; 
     } 
     } 
     } 
    </script> 

回答

0

您的代碼非常混亂。必須編寫整潔的代碼的原因之一。您的括號錯誤,因此整個代碼不會執行(else語句連接function)。

If聲明不存在,請嘗試if代替(小寫字母)。

其他的事情:

使用onkeyup代替。

2: 對於瓦爾你可以這樣做:

var UsrNm, 
    Psswd, 
    RePsw, 
    PostBackInfo 
; 

OR

var UsrNm = document.getElementById('txtUsrNm'), 
etc. 
+0

謝謝Kai和Rahul ....更改我爲小寫做了它......感謝偷窺.....感謝您的幫助! – user3599789

0

語法錯誤

一個額外的大括號}

 `else 
       { 
        document.getElementById("txtPhNo").value='waiting'; 
        document.getElementById("txtPhPop").value='waiting'; 
       } 
      } 
     }` 

刪除其他條件後的一個支架

相關問題