改变IE 8/9中的“onclick”事件(输入类型=按钮)&使用jQuery的FF不起作用(IE无法识别更改)

时间:2012-10-29 15:45:27

标签: javascript jquery sharepoint onclick

<input id="UploadButton" type="button" value="Upload" onclick="xyz"/> 

<script language="javascript" type="text/javascript">
    $(function () {
        $().SPServices({
            operation: "GetList",
            listName: "Docs",
            async: false,
            completefunc: function (xData, Status) {
                id = $(xData.responseXML).find("List").attr("ID");
            }
        });

        reference = "./_layouts/Upload.aspx?List=" + id + "&amp;RootFolder=";
        $('#UploadButton2').attr("href", reference);
        alert($('#UploadButton2').attr("href"));

        js = "javascript:" + "NewItem2(event, &quot;" + reference + "&quot;);javascript:return false;";
        $('#UploadButton').attr("onclick", js);
        alert($('#UploadButton').attr("onclick"));
    });
</script>    

我发现了一些适合我的问题的方法或解决方案,但它不起作用。

我只想设置或更改输入类型的“onclick”-Event(id = UploadButton)和

alert($('#UploadButton').attr("onclick"));

给了我“js”的字符串。到目前为止这么好......但如果我点击UploadButton就没有任何反应。似乎浏览器无法识别更改。我当前代码中的解决方案并不是我在过去几个小时内尝试过的唯一解决方案。我尝试过的解决方案之一是使用jQuery的.click()方法,但我不能在.click()上调用“NewItem2()”函数,是吗? 我的主要目标是使用字符串“reference”的信息在UploadButton上调用“NewItem2()”函数。不幸的是NewItem2()是Sharepoint的一个函数,所以没有用我的双手写的代码,但是如果我在代码中设置属性onclick,按钮工作正常: - /

我上次见过很多不同的解决方案,但没有什么不适合我,但我认为失败是在我的网站上。

2 个答案:

答案 0 :(得分:0)

要为该按钮设置onclick事件,您需要绑定一个匿名函数:

$( '#UploadButton' ).click( function () {
    // Do stuff here
} );

...或绑定另一个命名函数:

$( '#UploadButton' ).click( myClickHandler );

答案 1 :(得分:0)

你将NewItem2作为一个字符串调用,你将有更好的运气改变

js = "javascript:" + "NewItem2(event, &quot;" + reference + "&quot;);javascript:return false;";
$('#UploadButton').attr("onclick", js);

$('#UploadButton').click( function (event) {
    NewItem2(event, reference);
    return false;
});