2012-10-31 25 views
1
 <form action="" name="theForm" method="post"> 

    ...code for dropdown menus initialized to empty... 

    <td colspan="1" width="250"> 
     <input type="text" id="CAPS_CODE" name="CAPS_CODE" value="" 
     onchange="setF('LALA', this.value)" size="20" maxlength="20"/> 

      <div style="display:none;" id="CAPS_CODE$err"> 

      <span style="color: #FF0000; font-family: Arial, 
       Helvetica, sans-serif; font-size: 10px; 
       font-weight: bold; text-decoration: none;"> 
      </span> 
      </div> 
    </td> 

    `....form submit button in HTML and function call here - legacy code that works...` 

    </form> 

基本上這是一個輸入文本框。當我輸入'BMW',並移動光標在文本框外單擊它時,它會將下拉菜單填充到某些值。這是我明白onchange確實。我提交表單,並重新加載頁面。表單提交後AJAX onchange行爲更改

現在,當我嘗試在文本框中輸入新值時,如輸入A,值不斷被刪除。這發生在之前我點擊文本框外。這與表單提交後有關係嗎?

注:我使用AJAX下面我JS函數調用,如果這是有幫助的..

var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, capsCallback, postData);  

function setF(group_id, caps){ 
     var token = document.theForm.sessionToken.value; 
     getCarByAjax(token, group_id, caps);    
    } 


function getCarByAjax(sessionToken, group_id, caps){ 

     top.currentDependencyGroup = group_id; 

     //alert("strs= " + strs); 
     var entryPoint = '/DropDownList?'; 

     // entryPoint is the base URL 
     if(top.ctx != null && top.ctx != ""){  
      entryPoint = top.ctx + '/DropDownList?'; 
     } 

     var sUrl = entryPoint + encodeURI; 

     var postData = 'CAPSVEH=' + caps + '&FROM=' + group_id + '&sessionToken=' + sessionToken; 
     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, capsCallback, postData);    
    } 
+1

您可以請張貼更多的JS。這是問題很可能來自... –

+0

它不應該是,因爲在表單提交後,當我的光標仍然在文本框中,並且我更改值**沒有**點擊複選框,頁面錯誤地認識到值已更改**而沒有**點擊。這就是爲什麼我強烈感覺到它是一個HTML的問題,基於W3C的onchange文檔:\ – bouncingHippo

+0

您可以發佈的'setF'函數的代碼。代碼中沒有提供任何幫助。 – Joseph

回答

1

耶的解決方案是在您的JS代碼。嘗試onblur,或在您的JS代碼中進行調試以進行調試。注意display.style ='none'和重置值=''