簡體   English   中英

.click(函數)不適用於$ .getJSON

[英].click(function) not working for $.getJSON

我想在單擊按鈕時觸發Controller Action,並且嘗試實現一些JQuery代碼來執行該操作,但是單擊未正確觸發。

我有以下代碼:

<script type="text/javascript">

$(document).ready(function () {

    $("#btnLoadData").click(function() {
        var ResXName = $('#ResXName').val();
        var LangID = $('#LangID').val();
        var url = "../Home/LoadResXFile";
        e.preventDefault();  
        $.getJSON(url, { value: ResXName, langID: LangID }, function (data) {
            alert('clicked!');
        });
    });

});

</script>

<div class="main-content">
<input type="button" id="btnLoadData" value="Load Data" />
</div>

當我將警報移到$ getJSON上方時,它可以工作,因此可以正確單擊按鈕,但是,當我將警報移到$ getJSON內時,我沒有收到任何警報,也沒有觸發控制器操作。

我想念什么嗎?

感謝您的幫助和時間

我的問題實際上不在aspx中,而是在控制器內部。 我回來了:-

return Json(JsonRequestBehavior.AllowGet);

這顯然是錯誤的,因為沒有任何回報。 我將其更改為:-

return Json(new { ViewModel = viewModel }, JsonRequestBehavior.AllowGet);

現在可以正常工作了!

感謝您的所有幫助和時間!

因為getJson尚未完成。 它必須是這樣的var url = "/Home/LoadResXFile";

並非在所有情況下都將調用回調函數,如果您調用的URL返回500 OR 404,則將不會調用該函數。 嘗試添加一個名為.error()的新函數,

$.getJson(url,data,function(){
})
.error(){
alert("error");
};

getJSON調用是異步的,警報應在幾秒鍾內觸發。

原因是getURL不正確,因為URL格式不正確。

var url = "http://someurl/Home/LoadResXFile"; //maybe also extension needed.

請參閱文件

還有另一個錯誤:

e.preventDefault();

但是未定義e:將點擊更改為此

$("#btnLoadData").click(function(e){

如果您使用諸如fiddler或firebug之類的工具,是否可以看到正在生成.getJSON HTTP請求?

我的猜測是此請求失敗,例如,可能是由於URI錯誤導致的。

  $(function () {

        $(document).on('click', '#btnLoadData', function () {
            var url = "@Url.Action("Action", "Controller")";
            var postData = ({ value : $("#ResXName").val(), langID : $("#LangID").val()});
            $.getJSON(url, postData , function (data) {
                alert('clicked!');
            });
        });
    });

這應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM