javascript - October CMS - 单选按钮 Ajax 连续单击两次导致内容消失

标签 javascript php jquery ajax octobercms

我正在使用 October CMS 和 MaterializeCSS 在我的一个页面上创建选项表单。当您单击各个选项时,该表单运行良好并动态加载内容。但是,我注意到,如果我连续两次单击同一选项,内容就会消失并且不会插入新数据。甚至加载屏幕也无法出现。调试表明实际上没有发出任何 ajax 请求。有谁知道我如何更改此设置,以便单击两次会将当前内容保留在页面上或重新加载页面上的内容?下面是有问题的 radio 元素和完整的部分。

单选按钮:

<p class="optrow">
    <input onclick="onsend()" type="radio" class="box" id="cat_all" 
           name="dates" value="all" data-request="onEventDeals" 
           checked="checked" data-request-update="'deals::default':'#deals'" 
           data-request-loading="#loading">
    <label for="cat_all">&nbsp;&nbsp;Show All</label>
</p>

部分:

<ul class="collapsible" data-collapsible="accordion">
    <li>
      <div class="collapsible-header active"><i class="material-icons">format_list_bulleted</i>Deal Options</div>
        <div class="collapsible-body"><form id="dealsoptions" class data-request="onTest" data-request-update="calcresult: '#deals'">
            {# <p>
              <a href="#" onClick="onsend()" id="see_all">See All Deals - Clear</a>
            </p> #}
            {# <h5><b>&nbsp;Deal Source</b></h6>
            <hr>
            <div id="dealsource">
                <p class="optrow">
                  <input onClick="onsend()" type="checkbox" class="box" id="source_all" name="userProviders[]"
                         value="all" data-request="onLocalDeals" data-request-update="'deals::default': '#deals'"
                         data-request-loading="#loading" data-request-data="clear:1"/>
                  <label for="source_all">&nbsp;&nbsp;Show All</label>
                </p>
                {% for provider in providers %}
                    <p class="optrow">
                      <input onClick="onsend()" type="checkbox" class="box sourcebox" id="source_{{ provider.userProviderID }}" name="userProviders[]" value="{{ provider.userProviderID }}" checked="checked" data-request="onLocalDeals" data-request-update="'deals::default': '#deals'" data-request-loading="#loading"/>
                      <label for="source_{{ provider.userProviderID }}">&nbsp;&nbsp;{{ provider.providerName }}</label>
                    </p>
                {% endfor %}
            </div> 
            #}
            <hr>
            <h5><b>&nbsp;Event Date</b></h6>
            <hr>
            <div id="eventdate">
                <p class="optrow">
                  <input onClick="onsend()" type="radio" class="box" id="cat_all"
                         name="dates" value="all" data-request="onEventDeals" checked="checked" 
                         data-request-update="'deals::default': '#deals'" data-request-loading="#loading"/>
                  <label for="cat_all">&nbsp;&nbsp;Show All</label>
                </p>
                {% set weekEnd = "this sunday"|date('Y-m-d') %}
                {% set dates = {'Today':{'start':"now"|date("Y-m-d"),'end':"now"|date("Y-m-d")},
                                'Tomorrow':{'start':"now"|date_modify("+1 day")|date("Y-m-d"),'end':"now"|date_modify("+1 day")|date("Y-m-d")},
                                'This_Weekend':{'start':"this sunday"|date_modify("-2 day")|date('Y-m-d'),'end':weekEnd},
                                'This_Week':{'start':"now"|date("Y-m-d"),'end':weekEnd},
                                'This_Month':{'start':"now"|date("Y-m-d"),'end':"now"|date("Y-m-t")}} %}
                {% for key,date in dates %}
                    <p class="optrow">
                      <input onClick="onsend()" type="radio" class="box type_{{ key }}"
                             id="cat_{{ key }}" name="dates" 
                             value="{{ date.start }}:{{ date.end }}" 
                             data-request-data="start:'{{ date.start }}',end:'{{ date.end }}'"
                             data-request="onEventDeals" data-request-update="'deals::default': '#deals'"
                             data-request-loading="#loading"/>
                      <label for="cat_{{ key }}">&nbsp;&nbsp;{{ key|replace({'_':' '})|title }}</label>
                    </p>
                {% endfor %}
            </div>
            {% partial 'deals::apps' %}
        </form>
      </div>
    </li>
</ul>

最佳答案

我注意到输入上有 onClick="onsend()",这可能会导致 AJAX 处理程序被触发时出现问题。尝试将其删除,看看是否有进一步进展。

关于javascript - October CMS - 单选按钮 Ajax 连续单击两次导致内容消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36237959/

相关文章:

javascript - html变化的CSS子元素选择

php - 如何在 laravel 5 中删除表?

javascript - ASP.NET MVC 面试题

javascript - 如何在 webpack-dev-server 和express 服务器上重新加载模块?

javascript - Safari 服务器发送事件 (SSE) 无限循环

php - JavaScript 和 PHP : Problems with PushState

PHP Express Checkout Response 在几秒钟内调用我的脚本两次

php - Laravel 5 - 如何使用 Redis 从他的所有设备注销用户

javascript - 更改 div 的颜色和数字 onclick

javascript - if 和 else 部分在查询中不起作用