除非刷新,否则jquery不显示实时数据

时间:2015-02-03 00:32:22

标签: javascript jquery

我正在尝试计算在其中选择特定项目的下拉菜单数量。我的代码如下,但它的工作原理如下:

在下拉列表中选择选项,按下刷新页面,下拉列表中的所选项目保留在那里,脚本将读取每个选项的次数。

下拉框列在问题页面上。大约有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>  

1 个答案:

答案 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);