【问题标题】:Get all values in current tag from multiple tags and inputs从多个标签和输入中获取当前标签中的所有值
【发布时间】:2016-08-03 21:32:38
【问题描述】:

我有一个页面,我在 paginatethis 中的标签用于对所有字段进行分页。现在从我的 php 脚本 2 到 100 paginatethis class=abc 可以生成标签,我怎样才能只获取当前字段的值?我使用了分页插件 easyPagination 因此我使用了 paginatethis 标签

我的分页代码如下所示

$('#qwe').easyPaginate({
    paginateElement: 'paginatethis.abc',
    elementsPerPage: 1,
    effect: 'climb'
});

这是我的 jQuery。我需要在单击按钮时选择当前 paginatethis 标记中的所有元素。

$(document).ready(function() {  
    $(".submit:current").click(function(){
        var quesid = $("#quesId").val();
        var oans = $("#oans").val();
        var cdate = $("#testDate").val();
        var studans = $("#answer:checked").val();

        $.ajax({  
            url: "<?php echo base_url('Front/submitAns');?>", 
            data: {
                quesid: quesid, 
                oans: oans, 
                cdate: cdate, 
                studans: studans
            },
            method: "POST",
            dataType: "text",
            success: function(data) { 
                $("#counts").html(data); 
            }    
        }); 
    });
});   
<paginatethis class="abc">
    <input type="radio" value="A" class="form-group" id="answer" name="answer">
    <input type="radio" value="B" class="form-group" id="answer" name="answer">
    <input type="radio" value="C" class="form-group" id="answer" name="answer">
    <input type="radio" value="D" class="form-group" id="answer" name="answer">
    <input type="hidden" name="testDate" value="<?php echo  date("Y-m-d");?>" >
    <input type="hidden" name="oans" id="oans" value="<?php echo  base64_encode($data->ans);?>" >
    <input type="hidden" name="quesId"  id="quesId" value="<?php echo  $data->id;?>" >
    <button type="button" name="submit" class="submit">SUBMIT</button>
</paginatethis>   <!--/value changed from above tag-->
<paginatethis class="abc"> 
    <input type="radio" value="A" class="form-group" id="answer" name="answer">
    <input type="radio" value="B" class="form-group" id="answer" name="answer">
    <input type="radio" value="C" class="form-group" id="answer" name="answer">
    <input type="radio" value="D" class="form-group" id="answer" name="answer">
    <input type="hidden" name="testDate" value="<?php echo  date("Y-m-d");?>" > //value changes in every tag
    <input type="hidden" name="oans" id="oans" value="<?php echo  base64_encode($data->ans);?>" >
    <input type="hidden" name="quesId"  id="quesId" value="<?php echo  $data->id;?>" >    
    <button type="button" name="submit" class="submit">SUBMIT</button>
</paginatethis>

【问题讨论】:

  • 可以加个jsfiddle吗?或者至少是paginatethis 的工作版本,因为它不是标准的 jquery 库 (asaik)。
  • 我正在使用这个插件来做 jquery 分页 st3ph.github.io/jquery.easyPaginate 所以我可以添加我自己的标签并且它工作正常
  • 编辑帖子并添加您使用 lib easyPaginate 的事实。另外 - 如果您提供一个有效的 jsfiddle 版本,帮助会容易得多。
  • 我需要的是每次 发生时从当前分页页面中获取值,它是 1 页,像这样可能有 2-100页面

标签: jquery html ajax jquery-pagination


【解决方案1】:

您可以使用函数serialize 来获取当前页面中输入的所有值。

请注意,您需要更改 click 事件以处理对 DOM 更改的点击,因此我使用 $('#qwe').on('click', '.submit', 而不是 $('.select').click

这是一个例子:

$('#qwe').easyPaginate({
  paginateElement: 'paginatethis.abc',
  elementsPerPage: 1,
  effect: 'climb'
});

$('#qwe').on('click', '.submit', function() {
  all_data_in_page = $('#qwe input').serialize();
  console.log(all_data_in_page);
  $.ajax({
    url: "your url",
    data: all_data_in_page,
    method: "POST",
    dataType: "text",
    success: function(data) {
      $("#counts").html(data);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://st3ph.github.io/jquery.easyPaginate/js/jquery.easyPaginate.js"></script>
<div id="qwe">
  <paginatethis class="abc">
    Content of page 1
    <input type="radio" value="A" class="form-group" id="answer" name="answer">
    <input type="radio" value="B" class="form-group" id="answer" name="answer">
    <input type="radio" value="C" class="form-group" id="answer" name="answer">
    <input type="radio" value="D" class="form-group" id="answer" name="answer">
    <input type="hidden" name="testDate" value="1" >
    <input type="hidden" name="oans" id="oans" value="2" >
    <input type="hidden" name="quesId"  id="quesId" value="3" >
    <button type="button" name="submit" class="submit">SUBMIT</button>
  </paginatethis>
  <paginatethis class="abc"> 
    Content of page 2
    <input type="radio" value="A" class="form-group" id="answer" name="answer">
    <input type="radio" value="B" class="form-group" id="answer" name="answer">
    <input type="radio" value="C" class="form-group" id="answer" name="answer">
    <input type="radio" value="D" class="form-group" id="answer" name="answer">
    <input type="hidden" name="testDate" value="4" >
    <input type="hidden" name="oans" id="oans" value="5" >
    <input type="hidden" name="quesId"  id="quesId" value="6" >    
    <button type="button" name="submit" class="submit">SUBMIT</button>
  </paginatethis>
</div>

【讨论】:

  • $('#qwe input').serialize();假设我只想获得隐藏字段和我会使用的无线电类型? ` $('#qwe input[type=hidden],#qwe input[type=rdio]').serialize();` 现在不在我的电脑上,把我的笔记本电脑留在车里,但从控制台输出来看,我猜它工作然后过滤服务器端的数据
  • 顺便说一句,谢谢上面的评论对选择正确的输入有用吗?
  • 应该,但是你最好使用[type=radio](那里缺少a
  • lol 是的拼写错误无法在下一条评论后编辑:P
猜你喜欢
  • 2021-05-13
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多