为什么页面在ajax调用后刷新

时间:2016-06-09 12:37:14

标签: javascript php jquery ajax

我有一件事。如果它是模糊的,那么页面不会刷新,但如果是点击事件则页面正在重新加载。是什么原因。

$('#weeklygeneratebtn').on('click',function(){
    $('#store_name').on('blur',function(){
        var store_id = $("input[name=store_id]").val();
        alert($(this).attr("data-indent"));
        var category = '';
        var flag;
        if($(this).data("indent") == "sundry"){
            category = '235';
            flag = 1;
        }
        if(flag== 1){
            $.ajax({ url: 'lib/function.php',
                data: {action: 'getStoreSupplyItems', 
                       id:store_id, 
                       indent:1, 
                       category:category},
                success: function(output) {
                     //alert(output);
                     $('#response').html(output);
                }     
            });
        }

这是我的代码。如果在ajax调用后选择了click功能,页面就会刷新。但是,如果我选择模糊功能,则页面不会重新加载。我的第一个疑问是重新加载的原因是什么,我的第二个问题是如何在点击的情况下不重新加载。

<button id="weeklyindentbtn" style="width:120px" class="button ui-button ui-widget ui-state-default ui-corner-all action-button ui-button-text-only" data-role="button">&nbsp;&nbsp;Generate</button>

2 个答案:

答案 0 :(得分:2)

如果您的按钮是&#34;输入&#34;类型为&#34;提交&#34;然后在Javascript点击处理程序中,您需要传递&#34;事件&#34;函数调用中的参数然后包含preventdefault函数,如下所示:

$("#weeklygeneratebtn").click(function(event) { event.preventDefault(); ... });

这将停止发生正常行为(即回发)。

如果您的按钮是&#34;按钮&#34;元素然后你可以添加&#34;按钮&#34;键入它以防止回发,如下所示:

<button type="button" id="weeklygeneratebutton">Generate</button>

答案 1 :(得分:0)

尝试阻止click事件传播并执行浏览器的默认行为。例如:

$('#weeklygeneratebtn').on('click', function(e){
    e.preventDefault();
    //do stuff
});