我正在尝试计算在其中选择特定项目的下拉菜单数量。我的代码如下,但它的工作原理如下:
在下拉列表中选择选项,按下刷新页面,下拉列表中的所选项目保留在那里,脚本将读取每个选项的次数。
下拉框列在问题页面上。大约有100个下拉菜单。每个下拉列表都有相同的选项。
这是一个重复代码,列出了页面右侧的所有下拉选项,并显示了旁边使用的每个下拉选项的次数。它工作,只是不动态。我希望它在选择项目时立即工作,而不必进行选择然后刷新。
<%
mySQL="SELECT * FROM admins WHERE area="&parea&" AND type>2"
call getFromDatabase(mySQL, rstemp4, "addscheduleform5.asp")
do while Not rstemp4.EOF
pempidw=rstemp4("idadmin")
pempname1=rstemp4("firstname")
%>
<%=pempname%>=
<script type="text/javascript">
var scheduled = $("select").filter(function() {
return $(this).val() == "<%=pempidw%>";
});
document.write(scheduled.length);
</script>
<%rstemp4.movenext
loop%>
实施例
例如,如果您有5个下拉菜单。所以,如果你选择
X,A,B,X,A
在下拉列表中,代码为
X = 2 A = 2 B = 1
现在它可以工作,如果您进行下拉选择并刷新页面,下拉选项保持不变,代码会显示每个选择的次数。
现在,如果您从
更改第一个选项X到A,
然后代码仍然显示:
X = 2 A = 2 B = 1
除非您刷新页面,否则您会看到:
X = 1 A = 3 B = 1。
对于那些不了解asp的人来说,这个javascript函数与我的asp站点无关。 "<%=pempidw%>"
只是在加载的页面上显示一个数字,引用选择值。
在下面看到加载的脚本会显示为什么。有关"<%=pempidw%>"
仅表示
<option value="2">2</option>
<script type="text/javascript">
var scheduled = $("select").filter(function() {
return $(this).val() == "2";
});
document.write(scheduled.length);
</script>
答案 0 :(得分:0)
鉴于document.write
真的不是这样做的好方法,我会(为了示例)在我们可以[重新]的页面上放置一个<span id="result"></span>
参考输出。
话虽如此,测试代码应该包含在一个函数中,以便我们可以重用它。目前它只在初次访问页面时执行。为了纠正这个问题,我们还将在更改任何下拉列表时执行我们的新功能。
function getSelectedValues(){
var matches = $('select').filter(function(){
return $(this).val() == '<%=pempidw%>';
}).length;
// here's where we just update that new <span>
$('span#result').text(matches);
}
// call it on initial page visit
getSelectedValues();
// and here we bind to the change event for the selects
// and re-call our above function.
$('select').on('change', getSelectedValues);