JQuery $ .getJSON第一次运行,然后再也没有运行

时间:2010-06-29 14:57:12

标签: jquery asp.net-mvc

我有一个按钮点击功能,用于在单击按钮时运行$ .getJSON。它从控制器获取一些值,将这些值发布到某些表单字段,并打开包含表单的模式。 我第一次单击它运行的按钮$ .getJSON发布值并打开模态就好了。 当我关闭模态并再次单击该按钮时。它只是打开模态,值是旧值。它不会再次运行$ .getJSON。我知道它也不是因为我在控制器中设置了一个断点。它第一次达到了破发点。但是在我完全重新加载页面之前,不会再进入控制器。

这是我的按钮点击脚本

   $('[id^=edit]').button().click(function () {
    var selected = $(this).val();
    var arr = selected.split(',');
    var item = arr[0];
    var parent = arr[1];
    $("#itemspan").text(parent);
    $("#parentspan").text(item);
    $("#partno")[0].value = item;
    $("#parent")[0].value = parent;
    var url = $("#itemdetailsjsonurl").attr("href");
    var fullurl = url + '/' + item + '/' + parent;
    $.getJSON(fullurl, null, function (data) {
        $("#qty")[0].value = data.qty;
        $("#startdate")[0].value = data.sdate;
        $("#enddate")[0].value = data.edate;
        $("#notes")[0].value = data.memo;
    });

    $("#edtbomitem").dialog('open');
});

任何想法为什么?

3 个答案:

答案 0 :(得分:2)

默认情况下,它会被浏览器缓存。您可以使用jQuery的ajax堆栈来设置它:http://api.jquery.com/jQuery.ajax/

  

缓存
  默认值:true,false表示dataType'script'和'jsonp'   如果设置为false,它将强制您请求的页面不被浏览器缓存。

Grz,Kris。

答案 1 :(得分:0)

click事件已经触发,因此jQuery停止侦听点击。

尝试:$('[id^=edit]').button().live('click', function () {

答案 2 :(得分:0)

我的猜测是,在您从服务器上取回信息后,您没有连接按钮onclick事件。

因此,要么使用.live语法,要么在调用服务器后手动重新连接。