【问题标题】:Ajax call on checking a checkbox选中复选框时的 Ajax 调用
【发布时间】:2014-06-09 18:26:54
【问题描述】:

我有两个复选框。现在单击其中一个复选框,我想对 jsp 页面进行 ajax 调用。该 jsp 页面将显示一个包含从数据库中获取的数据的表。

现在,问题是我有两个复选框,例如:

<div class="search-inputs">

        <input class="searchName" type="text" placeholder="Search Here.."></input>

        <input class="searchType1" type="checkbox" name="emailNotification"><label class="searchtype1label">Email Notification</label></input>
        <input class="searchType2" type="checkbox" name="SharingNotification"><label class="searchtype2label">File Sharing Notification</label></input>


        <input class="searchDateFrom" type="text" placeholder="Search From"></input>
        <input class="searchDateTo" type="text" placeholder="Search To"></input>
        <input class="Datesubmit" type="button" value="Search"></input>
        <div id="container"></div>

怎么做?请帮忙

My Script part : 

$(document).ready(function () {

            $('.search-select').on('change', function(){
            $('.search-inputs').children().hide();
            var classn =$(this).find(":selected").val();
            //alert(classn);
            if(classn=='searchName')
                {
                    //alert("searchname");
                    $('.'+"searchName").show();
                }
                else if(classn=='searchType')
                {
                    //alert("searchType");
                    $('.'+"searchType1").show();
                    $('.'+"searchtype1label").show();
                    $('.'+"searchType2").show();
                    $('.'+"searchtype2label").show();
                }
                else if(classn=='searchDate'){
                    //alert("searchType");
                    $('.'+"searchDateFrom").show();
                    $('.'+"searchDateTo").show();
                    $('.'+"Datesubmit").show();
                }

            });

            $('#emailNotification').on('change',function() {
            //var checked = $(this).is(':checked');
            if(this.checked){

            //alert("in");
            $.ajax({
                type: "POST",
                url: "searchOnType.jsp",
                data: {mydata: "emailNotification"},
                success: function(data) {
                    alert('it worked');
                    $('#container').html(data);
                },
                 error: function() {
                    alert('it broke');
                },
                complete: function() {
                    alert('it completed');
                }
            });

            }
      });

      });

但是如何在同一页面上显示表格呢?

【问题讨论】:

  • @EhsanSajjad 我编辑了。请检查

标签: javascript jquery ajax jsp checkbox


【解决方案1】:

您必须为此使用change 事件,如下所示:

HTML:

<input class="searchType1" type="checkbox" name="emailNotification"><label class="searchtype1label">Email Notification</label></input>
<input class="searchType2" type="checkbox" name="SharingNotification"><label class="searchtype2label">File Sharing Notification</label></input>

<div id="container">
</div>

JQuery:

$('#emailNotification').on('change',function() {

            if(this.checked){

            $.ajax({
                type: "POST",
                url: "searchOnType.jsp",
                data: {mydata:"emailNotification"},
                success: function(data) {
                    alert('it worked');
                    $('#container').html(data);
                },
                 error: function() {
                    alert('it broke');
                },
                complete: function() {
                    alert('it completed');
                }
            });

            }
      });

【讨论】:

  • 表格将如何打印在发出呼叫的同一页上?
  • 查看您需要制作容器 div 并在其中加载响应 html 的编辑
  • 问题出在哪里是ajax调用发送?
  • 没有呼叫未发送。我尝试打印警报但未打印警报
  • 查看编辑,将 url 放在引号中并检查数据属性更改
【解决方案2】:

你必须用这个稍微改变你的 html--

为两个复选框赋予相同的类名。

<input class="searchType" type="checkbox" name="emailNotification" id="emailNotification"><label class="searchtype1label">Email Notification</label></input>
 <input class="searchType" type="checkbox" name="SharingNotification" id="SharingNotification"><label class="searchtype2label">File Sharing Notification</label></input>

现在 jquery 部分略有变化--

$('.searchType').click(function() {
    alert($(this).attr('id'));  //-->this will alert id of checked checkbox.
       if(this.checked){
            $.ajax({
                type: "POST",
                url: 'searchOnType.jsp',
                data: $(this).attr('id'), //--> send id of checked checkbox on other page
                success: function(data) {
                    alert('it worked');
                    alert(data);
                    $('#container').html(data);
                },
                 error: function() {
                    alert('it broke');
                },
                complete: function() {
                    alert('it completed');
                }
            });

            }
      });

【讨论】:

  • 为什么你从其他答案复制代码?顺便说一句,我已经添加了那个源
  • 它起作用了。但是为什么该页面中的 html 没有显示在这里。为了测试,我只是在该页面上取一个标题,例如

    "HELLO"

  • 控制台中是否显示任何错误..?还是您确定 ajax 获取正确的 url 路径?
  • 是的,我确信成功后我在警报中打印了数据,并在其他页面上显示了所有 html。它是这样的: JSP 页面

    Hello World!

    正文>
  • 他们在控制台上没有错误,因为另一个页面刚刚创建并且只包含一个 hello world 消息
猜你喜欢
  • 1970-01-01
  • 2018-11-03
  • 2013-05-10
  • 2012-01-23
  • 2016-11-25
  • 2019-08-11
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
相关资源
最近更新 更多