经典asp页面中DropDown的JavaScript验证

时间:2014-04-07 16:56:35

标签: javascript asp-classic

我有一个经典的asp页面,其中我将有一个新的下拉列表。如果新的下拉列表符合特定条件,则只会在页面上显示。我需要添加一个验证,以便用户在能够提交页面之前在页面上显示时都需要选择下拉列表,并且每当下拉列表没有出现在页面上时都不需要验证

我在验证部分遇到了麻烦

下面是我在下拉列表的经典asp页面上的代码

<select id= "BatchElement<%=vRptCount%>"  name="BatchElement<%=vRptCount%>" <%if SR("rptdesc1") = "N" then response.write " style='Display:none' "   %> > 
  <option value=0 selected>--------------------Select--------------------</option>
  <option value="Deidentified"  <%if SR("BatchElement") = "Deidentified" then%> selected<%end if%>>Deidentified</option>
  <option value="Identified"  <%if SR("BatchElement") = "Identified" then%>selected<%end if%>>Identified</option>
</select>

JavaScript代码

vBatchElement = "BatchElement" + vReportCounts
if(document.all(vBatchElement).value==0) { 
  alert("Please Select BatchElement from the dropdown value for "+vReportCounts);
  return false;

使用Above Javascript,即使dropdwon没有出现在页面上,验证似乎也能正常工作。如何进行验证工作,使其仅在页面上显示下拉列表时验证

1 个答案:

答案 0 :(得分:1)

您的控件是一个下拉列表,因此您不应该尝试访问控件的“值”,您应该访问所选索引的值(当根据所选的特定值进行验证时)或者只是控件的选定索引(如果你所有的话)关心的是选择了第一项以外的东西。

我不确定你是如何启动JS调用的,或者你如何将你的asp变量“vRptCount”作为“vReportCounts”添加到你的javascript函数中,但假设这一切都正确发生,可能更像这样:< / p>

vBatchElement = "BatchElement" + vReportsCounts;

var ddl = document.getElementByID(vBatchElement);
if(ddl) {
if(ddl.selectedIndex == 0)){
alert('Please select BatchElement from the dropdown value for ' + vReportCounts);
return(false);
}