[英].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.