Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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按钮onclick()未触发_Javascript_Jquery_Html - Fatal编程技术网

Javascript按钮onclick()未触发

Javascript按钮onclick()未触发,javascript,jquery,html,Javascript,Jquery,Html,我试图找出为什么我的javascript在单击按钮时没有运行。我检查了javascript文件是否正确加载,控制台中是否有错误。当我在控制台中运行javascript代码时,代码成功地运行并执行它应该执行的操作,但是当我单击按钮时,它不会启动。我相信我所有的语法都是正确的,所以我不确定是什么导致了这个问题 下面是按钮的HTML: <input class="btnSaveParameters" id="btn_SaveCriteria" onclick="return btn_SaveCr

我试图找出为什么我的javascript在单击按钮时没有运行。我检查了javascript文件是否正确加载,控制台中是否有错误。当我在控制台中运行javascript代码时,代码成功地运行并执行它应该执行的操作,但是当我单击按钮时,它不会启动。我相信我所有的语法都是正确的,所以我不确定是什么导致了这个问题

下面是按钮的HTML:

<input class="btnSaveParameters" id="btn_SaveCriteria" onclick="return btn_SaveCriteria_onclick();" type="button" value="Save Subscription"/>
function btn_SaveCriteria_onclick() {
    //Testing if function fires:
    window.alert(5 + 6);

    var availableSelects = [];
    $("Select").each(function () {
        availableSelects.push($(this).attr("id"));
    });
    if (
        $("#" + availableSelects[1])
            .find(":selected")
            .text() + $("#" + availableSelects[2])
            .find(":selected")
            .text()+$("#" + availableSelects[2])
            .find(":selected").text() ==='AllAllAll'
    ) {
        $(".PageTitle").append("<div id='dialog' title='Parameter Warning'>You cannot select all for all 3 filters</div>");
            $("#dialog").dialog();
        } else {
            var t = document.getElementById("modal-form").cloneNode(true);
            t.style.display = "inline";
            var options = {
                title : "Add a Description to your Subscription",
                width : 500,
                height : 100,
                dialogReturnValueCallback : MyDialogClosed,
                html: t
            };
        };
        SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
    }
}

下面是在控制台中正确运行的Javascript函数,但单击按钮时不会触发该函数:

<input class="btnSaveParameters" id="btn_SaveCriteria" onclick="return btn_SaveCriteria_onclick();" type="button" value="Save Subscription"/>
function btn_SaveCriteria_onclick() {
    //Testing if function fires:
    window.alert(5 + 6);

    var availableSelects = [];
    $("Select").each(function () {
        availableSelects.push($(this).attr("id"));
    });
    if (
        $("#" + availableSelects[1])
            .find(":selected")
            .text() + $("#" + availableSelects[2])
            .find(":selected")
            .text()+$("#" + availableSelects[2])
            .find(":selected").text() ==='AllAllAll'
    ) {
        $(".PageTitle").append("<div id='dialog' title='Parameter Warning'>You cannot select all for all 3 filters</div>");
            $("#dialog").dialog();
        } else {
            var t = document.getElementById("modal-form").cloneNode(true);
            t.style.display = "inline";
            var options = {
                title : "Add a Description to your Subscription",
                width : 500,
                height : 100,
                dialogReturnValueCallback : MyDialogClosed,
                html: t
            };
        };
        SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
    }
}
函数btn\u SaveCriteria\u onclick(){
//测试函数是否触发:
窗口警报(5+6);
var availableSelects=[];
$(“选择”)。每个(函数(){
可用选择.push($(this.attr(“id”));
});
如果(
$(“#”+可用选择[1])
.find(“:选定”)
.text()+$(“#”+可用选择[2])
.find(“:选定”)
.text()+$(“#”+可用选择[2])
.find(“:selected”).text()
) {
$(“.PageTitle”).append(“您不能为所有3个筛选器选择全部”);
$(“#dialog”).dialog();
}否则{
var t=document.getElementById(“模态形式”).cloneNode(true);
t、 style.display=“inline”;
变量选项={
标题:“向订阅添加说明”,
宽度:500,
身高:100,
dialogReturnValueCallback:MyDialogClosed,
html:t
};
};
SP.SOD.execute('SP.ui.dialog.js','SP.ui.ModalDialog.showModalDialog',选项);
}
}

有人知道为什么javascript没有通过单击按钮触发吗?

可能onclick事件没有找到函数,因为它超出了范围

要确保使用jquery附加事件,请执行以下操作:

我进行了测试并正在进行以下工作:

//这将再次点击btn\u保存标准按钮。
$(函数(){
$('#btn_SaveCriteria')。单击(函数(){btn_SaveCriteria_onclick();});
});
//这是你不变的功能
函数btn\u SaveCriteria\u onclick(){
//测试函数是否触发:
窗口警报(5+6);
var availableSelects=[];
$(“选择”)。每个(函数(){
可用选择.push($(this.attr(“id”));
});
如果($(“#“+可用性选择[1]).find(“:selected”).text()+$(“#“+可用性选择[2]).find(“:selected”).text()+$(“#“+可用性选择[2]).find(“:selected”).text()=='allall'){
$(“.PageTitle”).append(“您不能为所有3个筛选器选择全部”);
$(“#dialog”).dialog();
}否则{
var t=document.getElementById(“模态形式”).cloneNode(true);
t、 style.display=“inline”;

var options={title:“向订阅添加说明”,宽度:500,高度:100,dialogReturnValueCallback:MyDialogClosed,html:t};//$('将函数放入脚本标记中,置于输入按钮标记上方。 在html文件中:


函数btn\u SaveCriteria\u onclick(){
//测试函数是否触发:
警戒(5+6);
var availableSelects=[];
$(“选择”)。每个(函数(){
可用选择.push($(this.attr(“id”));
});
如果($(“#“+可用性选择[1]).find(“:selected”).text()+$(“#“+可用性选择[2]).find(“:selected”).text()+$(“#“+可用性选择[2]).find(“:selected”).text()=='allall'){
$(“.PageTitle”).append(“您不能为所有3个筛选器选择全部”);
$(“#dialog”).dialog();
}否则{
var t=document.getElementById(“模态形式”).cloneNode(true);
t、 style.display=“inline”;

var options={title:“为订阅添加说明”,宽度:500,高度:100,dialogReturnValueCallback:MyDialogClosed,html:t};//$('感谢大家的输入

我能够得到启动javascript函数的按钮,但我不知道它为什么会工作

我创建了一个新函数并将其连接到按钮上

function test2() { window.alert(1+1);}
这个测试函数在单击按钮时被激发。然后我尝试将其余的代码添加到test2函数中。这也被激发。看到这一点,我将原来的函数名从

btn_SaveCriteria_onclick()

并删除了test2函数。出于某种原因,将名称更改为test()有效,javascript启动。因此,解决方案是将函数名称从btn_SaveCriteria_onclick()更改为其他名称,我将其更改为saveSubscriptionOnClick()


我不知道为什么会这样,或者为什么这是一个问题,但我会接受它。

你试过
onclick=“btn\u SaveCriteria\u onclick();”
?@GaryJohnson yes Iv试过删除“return”,没有luckCan你放了一把小提琴?如果你可能错过了,是
btn\u SaveCriteria\u onclick())
是在另一个函数中定义的吗?是否有任何方式表明该函数不在正确的范围内?您是否检查了控制台中的错误您的代码正在工作。我尝试使用此方法,并使用刚刚弹出的11值发出警报是的,正在工作,我不知道为什么人们对我的答案o给出-2。o 11结果是@Reeggiie original发出的警报请记住,除非您将函数声明为
var func=function(){..}
javascript不太关心它们的顺序。@Reeggiie使用我的示例了解它的工作情况。我没有更改您的函数。我只是用不同的绑定方式附加它。可能是因为绑定事件时不需要该函数而被否决了,您只需将
btn\u SaveCriteria\u onclick()
传递给它:
$(“#btn_SaveCriteria”)。单击(btn_SaveCriteria_onclick);
test()