有一個經典的ASP,當點擊Submit按鈕時,它調用Java腳本功能。該腳本包含對文本框的驗證:frmCode,當此驗證通過或文本框爲空時,我想提交表單。以經典的ASP/VB腳本提交表單
然而,設置frm = window.document.forms(0)
拋出一個錯誤說:"800a01a8|Object_required:_''"
我也試過frm = window.document.forms("form1")
,但它也不能工作。
任何意見,將不勝感激。先謝謝你。
<form Method="post" Action="Test.asp" onSubmit="return OKToSubmit()" id="form1" name="form1" target=_blank>
.....
..... more lines..
.....
<input type="text" id="frmCode" name="frmCode"
style="WIDTH: 248px; HEIGHT: 24px" size=1 maxlength="115">
.....
..... more lines..
.....
<input Type="button" Value="Submit" onClick="OKToSubmit()" id="btnSubmit" name="btnSubmitn">
.....
..... more lines..
.....
<SCRIPT ID=clientEventHandlersVBS type="text/Javascript">
function OKToSubmit(){
var availableCode = new Array();
<%
Dim frm 'reference to form
Set frm = window.document.forms(0)
idx = 0
for idx = 0 to UBound(codeList)-1
%>
availableCode[<%=idx %>] = unescape('<%= Escape(codeList(idx)) %>');
<% next %>
var strCode = document.getElementById('frmCode').value;
var validationFlag = 0;
loopValidation:
for (var i = 0; i < availableCode.length; i++) {
if (strCode == availableCode[i]){
validationFlag = 1;
break loopValidation;
}
}
if (validationFlag == 0 && !(strCode == "")){
alert("Code does not exist. Please check again.");
document.getElementById('frmCode').value = "";
<%
OKToSubmit = False
%>
} else {
<%
OKToSubmit = True
frm.Submit
%>
}
}
</SCRIPT>
爲什麼這個問題被低估? –
它不工作,因爲window.document.forms(0)不是有效的服務器端代碼。請記住,在ASP中,<% %>標籤之間的任何內容都被視爲服務器端代碼,並在頁面呈現給客戶端之前進行處理。所以當頁面正在處理服務器端代碼時,它不知道window.document.forms(0)是什麼,這就是你得到錯誤的原因。 在我可以提供解決方案之前,我需要知道什麼是編碼列表?是服務器端數組還是其他? –
@Josh Montgomery感謝您的回覆。 codelist是一個從數據庫中檢索數據的數組。我也試過在java腳本部分(<% %>之外)的window.document.forms [0],但它也沒有工作.. – Chrissa