javascript - pjax 成功后仅通过单击特定输入显示消息

标签 javascript jquery forms onchange pjax

我有一个表单,当对任何 radio input 进行任何更改时提交。

在表单中,我有两个不同的 radio 组。我正在尝试在 pjax:start 上的 #message 上输出一条消息,当来自 group2 的任何 radio 时> 被触发。

<form id="myForm">
    <input type="radio" name="group1" val="ga_1_1">
    <input type="radio" name="group1" val="ga_1_2">

    <input type="radio" name="group2" val="ga_2_1">
    <input type="radio" name="group2" val="ga_2_2">
</form>

<span id="message"></span>

这是我的简单方法:

$('input[name="group2"]').on('change', function(){
   $(document).on('pjax:start', function() {
     $('#message').text( 'Loading...' );
   });

   $(document).on('ready pjax:success', function() {
     $('#message').text( 'Loaded' );
   });
});

问题是即使我点击 radio group1 也会触发消息。

最佳答案

您有正确的选择器,无需更改它,您可以使用 $.pjax直接回调:

$('input[name="group2"]').on('change', function(){
    $.pjax({
        url: '/url',
        container: '#container',
        beforeSend: function(){
            $('#message').text( 'Loading...' );
        },
        complete: function(){
            $('#message').text( 'Loaded' );
        }
    });
});

或者您也可以发出回调并使用 send & complete相反,如果您按照 Official Documentation 中的说明进行加载,则最好:

pjax:send & pjax:complete are a good pair of events to use if you are implementing a loading indicator

$(function(){
    $('input[name="group2"]').on('change', function(){
       $.pjax({url: "/url", container: '#container'})
    });

    $(document).on('pjax:send', function() {
        $('#message').text( 'Loading...' );
    })
    $(document).on('pjax:complete', function() {
        $('#message').text( 'Loaded' );
    })
})

注意:不需要 ready回调,因为它会初始化你的 #messageLoaded当页面在任何 $.pjax 之前加载时请求。

看看 best way to implement an overlay with pjax .

希望这对您有所帮助。

关于javascript - pjax 成功后仅通过单击特定输入显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40938046/

相关文章:

javascript - 在 javascript 数组中拍摄图像时不显示 img 标签

css - 将表格并排放置

css - 点击提交按钮后隐藏表单并出现 'thank you' 框

javascript - 无法从待办事项列表中删除最后一项

javascript - 如何使用 jQuery 添加一个特定的 HTML block

javascript - Google map 未按预期工作

javascript - 链接标签调用js函数不起作用

php - "Request does not exist"创建表单 symfony2

javascript - 如何正确排序我的评论/回复/对回复数据的回复

javascript - Cordova 'deviceready' 事件未从 Angular .run block 内触发