-1
<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」-入力タイプ(id = UploadButton)のイベントを設定または変更したいだけです。

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

「js」からの文字列を教えてくれます。これまでのところ良いです...しかし、UploadButtonをクリックしても何も起こりません。ブラウザが変更を認識しないようです。私の現在のコードの解決策は、過去数時間に試した唯一の解決策ではありません。私が試した解決策の1つは、jQueryの.click()メソッドを使用することでしたが、.click()を介して「NewItem2()」関数を呼び出すことはできません。私の主な目標は、文字列「reference」の情報を使用して、UploadButtonに対して「NewItem2()」関数を呼び出すことです。残念ながら、NewItem2()はSharepointの関数であるため、手で記述されたコードは内部にありませんが、コードで属性onclickを設定すると、ボタンは完全に機能します:-/

私は過去に非常に多くの異なる解決策を見てきましたが、私には合わないものは何もありませんが、失敗は私のサイトにあると思います。

4

2 に答える 2

0

そのボタンのイベントを設定onclickするには、匿名関数をバインドする必要があります。

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

...または別の名前付き関数をバインドします:

$( '#UploadButton' ).click( myClickHandler );
于 2012-10-29T15:47:52.527 に答える
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;
});
于 2012-10-29T16:12:55.290 に答える