2011-02-03 134 views
0

我一直在尋找答案,爲什麼這不工作幾個小時,我很難過。onBlur函數沒有執行

下面是腳本,包括涉及的JavaScript和表單。

<script language="Javascript" type="text/javascript"> 
    function complete(init){ 
     alert ("in function with " + init); 
     var aList = new Array(<?php echo $aList; ?>); 
     var iList = new Array(<?php echo $iList; ?>); 
     for (var i = 0; i < iList.length; i++){ 
      if (init == iList[i]){ 
       alert ("replacing " + init + " with " + aList[i]); 
       this.frmMain.txtAtty.value = aList[i]; 
      } 
     } 
    } 
</script> 

<FORM METHOD="POST" NAME="frmMain" ACTION=<?php echo $_SERVER["PHP_SELF"]; ?>> 
    <table width="75%" align="center"> 
     <tr> 
      <td width="25%" align="right">Name:</td> 
      <td> 
       <input type="text" name="txtSender" size="30" value=""/><span class="noteText"> Your Name</span> 
      </td> 
     </tr> 
     <tr> 
      <td width="25%" align="right">Attorney:</td> 
      <td> 
       <input type="text" name="txtAtty" size="30" value="" onblur = "complete(this.value)"> 
      </td> 
     </tr> 

這兩個PHP回聲語句是數組的參數。 complete(this.value)函數應該採用3個字母的代碼(在iList數組中)並用名稱替換它。警報在那裏用於調試目的,但是當我運行頁面時我沒有看到警報。有任何想法嗎?

+0

如何做ALIST和IList的樣子?應該看起來像「a」,「b」,「c」。你可以發佈呈現的HTML而不是php – mplungjan 2011-02-03 21:19:00

回答

1

this.frmMain 不被任何定義

變化

onblur = "complete(this.value)" 

onblur = "complete(this)" 

,並使用

function complete(field){ 
    var init = field.value; 
     alert ("in function with " + init); 
     var aList = new Array(<?php echo $aList; ?>); 
     var iList = new Array(<?php echo $iList; ?>); 
     for (var i = 0; i < iList.length; i++){ 
      if (init == iList[i]){ 
       alert ("replacing " + init + " with " + aList[i]); 
       field.value = aList[i]; 
      } 
     } 
    } 
+0

PS:在CET上的牀位時間。希望你能得到它的工作 – mplungjan 2011-02-03 21:27:40