Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onchange仅适用于select 3和;“全部”;但不是中间的_Javascript_Html_Events_Javascript Events - Fatal编程技术网

Javascript onchange仅适用于select 3和;“全部”;但不是中间的

Javascript onchange仅适用于select 3和;“全部”;但不是中间的,javascript,html,events,javascript-events,Javascript,Html,Events,Javascript Events,不知道为什么会发生这种情况,但我的javascript更改显示的过去事件的数量无法正常工作。似乎只有第一个选择选项(3)和最后一个选项(全部)触发onchange事件。请看我的代码,如果我做错了什么,请告诉我,我是js的php新手。此外,在我接受回答之前,我将在我的演示网站上直播: html(php) echo'显示的编号:31020All'; js <script> var pastEvents = <?php echo json_encode($pastEvents);

不知道为什么会发生这种情况,但我的javascript更改显示的过去事件的数量无法正常工作。似乎只有第一个选择选项(3)和最后一个选项(全部)触发onchange事件。请看我的代码,如果我做错了什么,请告诉我,我是js的php新手。此外,在我接受回答之前,我将在我的演示网站上直播:

html(php)

echo'显示的编号:31020All';
js

<script>
var pastEvents = <?php echo json_encode($pastEvents); ?>;
function changePast(){
    var e = document.getElementById("select")
    var selected = e.options[e.selectedIndex].value;
    var table = document.getElementById("past_events");
    if(table!=null){
        var innerhtml = "";
        for(i=0;i<selected;i++){
            innerhtml+='<table class="invisible"><tr><td><img src="/'+pastEvents[i]["banner"]+'" alt="Event Banner"></td></tr><tr><td>'+pastEvents[i]["name"]+'</td></tr></table>';
        }
        table.innerHTML = innerhtml;
    }

}

var=;
函数changefoss(){
var e=document.getElementById(“选择”)
所选变量=e.options[e.selectedIndex]。值;
var table=document.getElementById(“过去的事件”);
如果(表!=null){
var innerhtml=“”;

对于(i=0;i我已经计算出来,只有5个过去的测试事件,因此如果我选择一个数字,我需要检查该值是否大于对象的#,如果是,那么我需要使用object.length。下面是for循环之前添加的代码:

if(selected>pastEvents.length){
            selected = pastEvents.length;
}

我想我已经弄明白了,过去只有5个测试事件,所以如果我选择一个数字,我需要检查该值是否大于对象的#,如果是,那么我需要使用object.length
if(selected>pastEvents.length){
            selected = pastEvents.length;
}