2012-02-09 38 views
0

你好傢伙我試圖改變一個選擇框基於它旁邊的文本框,我得到的對象預期?Javascript - 對象期望

JSP:

NSN:&nbsp;<input type="text" name="nsn" value=""/> 
TAMCN:&nbsp;<input type="text" id="tamcn" name="tamcn" value="" size="6" maxlength="5" onkeyup="javascript:tamcnSearchUpdated(this.value,'detSearchForm')" onkeypress="javascript:return noenter();" autocomplete="off" /> 


<select id="tamcnList" name="tamcnList" onchange="javascript:this.form.tamcn.value = '';"> 
    <option value=""<c:if test="${empty form.tamcnList}"> selected="selected"</c:if>>&nbsp;</option> 
    <c:forEach var="tamcn" items="${tamcns}"><option value="${tamcn.code}"<c:if test="${tamcn.code == form.tamcnList}"> selected="selected"</c:if>>${tamcn.code}</option></c:forEach> 

JAVASCRIPT:

function tamcnSearchUpdated(tamcn, formName){ 
    var tamcnUpper = tamcn.toUpperCase(); 
    document.forms[formName].elements.tamcn.value = tamcnUpper; 

    var len = tamcn.length; 
    if (tamcnUpper.indexOf('*') >= 0) 
    { 
     document.forms[formName].elements['tamcnList'].options[0].selected = 'selected'; 
     return; 
    } 

    for (var i = 0; i < document.forms[formName].elements['tamcnList'].options.length; i++) 
    { 
     if (document.forms[formName].elements['tamcnList'].options[i].text.substr(0,len) == tamcnUpper) 
     { 
      document.forms[formName].elements['tamcnList'].options[i].selected = 'selected'; 
      return; 
     } 
    } 

    document.forms[formName].elements['tamcnList'].options[0].selected = 'selected'; 
} 

我得到對象預期在這裏:

onkeyup="javascript:tamcnSearchUpdated(this.value,'detSearchForm')" 

這個頁面被稱爲filters.jsp,是一個包括在一個母版頁上表格設置:

<form action="process.det_details" method="get" name="detSearchForm">  
<table class="data_table" width="100%"> 

<!--<jsp:include page="../../jsp/det/data_extract_favorites.jsp" flush="false"/> --> 

<jsp:include page="../../jsp/det/data_extract_fields.jsp" flush="false"/> 

<jsp:include page="../../jsp/det/data_extract_size.jsp" flush="false"/> 

<jsp:include page="../../jsp/det/data_extract_filters.jsp" flush="false"/> 

<jsp:include page="../../jsp/det/data_extract_results.jsp" flush="false"/> 

</table> 
</form> 
+0

你如何渲染'detSearchForm'表單到頁面? – pete 2012-02-09 17:51:34

+1

我不認爲在定義onkeyup處理程序時需要'javascript:'位。 – Herms 2012-02-09 17:56:12

+0

@pete我剛剛更新了問題 – 2012-02-09 19:17:43

回答

1

onkeyup(和其它在線活動)在他們面前做需要javascript:。那就是只有需要href屬性的鏈接(或action在窗體上)。刪除,你很好。

+0

,沒有工作...我在其他地方做這個,它似乎工作 – 2012-02-09 19:58:27