Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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事件没有';行不通_Javascript_Html - Fatal编程技术网

Javascript 为什么onchange事件没有';行不通

Javascript 为什么onchange事件没有';行不通,javascript,html,Javascript,Html,为什么onchange事件不起作用? 下面是我的代码: php文件现在通常是有问题的。因为当我导航到另一个只有de input标签的号码时,它就起作用了。但当我用四个按钮导航时,它不起作用。 谢谢您的回复 <script> function splus() { document.getElementById("scene").value++; document.getElementById("take").value="1"; } function smin(

为什么onchange事件不起作用? 下面是我的代码: php文件现在通常是有问题的。因为当我导航到另一个只有de input标签的号码时,它就起作用了。但当我用四个按钮导航时,它不起作用。 谢谢您的回复

    <script>
function splus() {
    document.getElementById("scene").value++;
    document.getElementById("take").value="1";
}
function smin() {
    if(document.getElementById('scene').value >1){
    document.getElementById("scene").value--;}
}
function tplus() {
    document.getElementById("take").value++;
    document.getElementById('comment').value = '';
}
function tmin() {
    if(document.getElementById('take').value >1){
    document.getElementById("take").value--;}
}
function change(scene,take) {
     if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("comment").innerHTML = xmlhttp.responseText;
            }
        };

        xmlhttp.open("GET","selectst.php?scene="+scene+"&take="+take,true);
        xmlhttp.send();
}
</script>
<body>
<button onclick="splus()" id="scene+">scene+</button>
<button onclick="smin()" id="scene-">scene-</button>
<button onclick="tplus()" id="take+">take+</button>
<button onclick="tmin()" id="take-">take-</button>
<input id="scene" type="number" onchange="change(this.value,document.getElementById('take').value)" value="1">
<input id="take" type="number" onchange="change(document.getElementById('scene').value,this.value)" value="1">
<textarea id="comment" rows="4" cols="50" placeholder="comments..."></textarea>
</body>

函数splus(){
document.getElementById(“场景”).value++;
document.getElementById(“take”).value=“1”;
}
函数smin(){
if(document.getElementById('scene')。值>1){
document.getElementById(“场景”).value--;}
}
函数tplus(){
document.getElementById(“take”).value++;
document.getElementById('comment')。值=“”;
}
函数tmin(){
if(document.getElementById('take')。值>1){
document.getElementById(“take”).value--;}
}
功能更改(场景、拍摄){
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“comment”).innerHTML=xmlhttp.responseText;
}
};
open(“GET”、“selectst.php?scene=“+scene+”&take=“+take,true”);
xmlhttp.send();
}
场面+
场面-
接受+
接受-

这是因为只有在与元素发生交互时才会触发
change
事件。若您从javascript更改元素的值,它不会触发它,您将不得不手动触发更改事件。您可以参考以下[MDN-post]/()作为参考

这里有一个解决方法。我正在使用onfocus()

函数splus(){
document.getElementById(“场景”).value++;
document.getElementById(“take”).value=“1”;
document.getElementById(“场景”).focus();
}
函数smin(){
if(document.getElementById('scene')。值>1){
document.getElementById(“场景”).value--;
}
document.getElementById(“场景”).focus();
}
函数tplus(){
document.getElementById(“take”).value++;
document.getElementById('comment')。值=“”;
document.getElementById(“take”).focus();
}
函数tmin(){
if(document.getElementById('take')。值>1){
document.getElementById(“take”).value--;
}
document.getElementById(“take”).focus();
}
功能更改(场景、拍摄){
警报(“点击”);
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“comment”).innerHTML=xmlhttp.responseText;
}
};
open(“GET”、“selectst.php?scene=“+scene+”&take=“+take,true”);
xmlhttp.send();
}
场景+
场面-
接受+
接受-
使用此解决方案:

函数tplus(){
document.getElementById(“take”).value++;
如果(文档中的“createEvent”){
var evt=document.createEvent(“HTMLEvents”);
evt.initEvent(“变更”、假、真);
document.getElementById(“take”).dispatchEvent(evt);
}
其他的
document.getElementById(“take”).fireEvent(“onchange”);
}

运行
元素.change()
手动触发事件可能重复