【问题标题】:Find closest value from div inside row从行内的 div 中查找最接近的值
【发布时间】:2017-10-30 09:33:44
【问题描述】:

我正在尝试从单击的行表单中的表单中查找值。我正在使用这个脚本。我能够从表单字段中获取值。但它给了我相同的价值,如果点击任何一行,它只会给我第一行的价值。

我想通过点击类名“.followupform”的行内的 td 链接打开表单 打开“.followupform”链接(表单)后。我想通过单击当前行的“.updatefollowupstatus”从字段中获取值。

$(".updatefollowupstatus").click(function(e){ 
  var row = $(this).closest('td>.popover-content>form')
  var status= $(row).find(".fformstatus").val();
  var comment= $(row).find(".fformcomment").val();
  var ffid= $(row).find(".fformffid").val();
  alert(ffid);
});


    <td style="text-align:center">
                  <a href="#" class="followupform"><i class="fa fa-edit"></i></a>                           <div class="hide img-rounded popover-content">
                     <strong style="text-align:center">Update Followup Status</strong><span class="pull-right ffclose" style="cursor: pointer;"><i class="fa fa-close"></i></span>
                     <hr>
                      <form class="form-inline" role="form">
                        <div class="form-group">
                          <select class="form-control fformstatus" name="fformstatus">
                            <option value="0">Followups Status</option>
                            <option value="VM">VM</option>
                            <option value="Callback">Callback</option>
                            <option value="Rude">Rude</option>
                            <option value="Done">Done</option>
                          </select>         
                        </div>  
                        <div class="form-group">  
                          <textarea placeholder="Follow up Comment overview" class="form-control fformcomment"></textarea>
                          <input type="text" class="fformffid" hidden="" name="fformffid" value="15">
                        </div>        
                        <div class="form-group">  
                          <div class="btn btn-primary updatefollowupstatus">Update »</div>                                  
                        </div>
                      </form>
</div><!-- Form Content -->
                  </td>

我用尽了所有可能的方式。但我认为有一些错误或其他方式可以做到这一点。我的目标是更新当前行的反馈并通过 ajax 发送值进行处理。

【问题讨论】:

  • 一行没有value - 这不是一个表单。没有行形式这样的东西。一行有单元格(td 元素),这些单元格有textContent 和/或innerHTML(或在JQuery 中:text() 和/或html())。
  • 您可以选择父表单而不是行。 $(".updatefollowupstatus").click(function(e){ var form = $(this).parents('form') var status= $(form).find(".fformstatus").val(); var评论= $(form).find(".fformcomment").val(); var ffid= $(form).find(".fformffid").val(); alert(ffid); });

标签: javascript jquery forms jquery-selectors


【解决方案1】:

最好使用.parents() 方法,因为表单是单击按钮的父元素。

试试下面的代码。

$(".updatefollowupstatus").click(function(e){ 
   var frm = $(this).parents('form');
   var status= $(frm).find(".fformstatus").val();
   var comment= $(frm).find(".fformcomment").val();
   var ffid= $(frm).find(".fformffid").val();
   alert(ffid);
});

【讨论】:

  • 感谢 Prashant,您的建议奏效了。我必须为每个表单分配动态类名,以便我可以从表单中获取动态值。它现在工作得很好。
  • 欢迎萨哈尔!很高兴它帮助了你。 ;-)
【解决方案2】:

您在 [closest()][1] 中的 .closest('td&gt;.popover-content&gt;form') 中使用了错误的选择器,只需使用 .closest('form')

$(".updatefollowupstatus").click(function(e) {
  var row = $(this).closest('form');
  var status = $(row).find(".fformstatus").val();
  var comment = $(row).find(".fformcomment").val();
  var ffid = $(row).find(".fformffid").val();
  alert(status + ',' + comment + ',' + ffid);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
  <tr>
    <td style="text-align:center">
      <a href="#" class="followupform"><i class="fa fa-edit"></i></a>
      <div class="hide img-rounded popover-content">
        <strong style="text-align:center">Update Followup Status</strong><span class="pull-right ffclose" style="cursor: pointer;"><i class="fa fa-close"></i></span>
        <hr>
        <form class="form-inline" role="form">
          <div class="form-group">
            <select class="form-control fformstatus" name="fformstatus">
              <option value="0">Followups Status</option>
              <option value="VM">VM</option>
              <option value="Callback">Callback</option>
              <option value="Rude">Rude</option>
              <option value="Done">Done</option>
             </select>
          </div>
          <div class="form-group">
            <textarea placeholder="Follow up Comment overview" class="form-control fformcomment"></textarea>
            <input type="text" class="fformffid" hidden="" name="fformffid" value="15">
          </div>
          <div class="form-group">
            <div class="btn btn-primary updatefollowupstatus">Update »</div>
          </div>
        </form>
      </div>
      <!-- Form Content -->
    </td>
  </tr>
  <tr>
    <td style="text-align:center">
      <a href="#" class="followupform"><i class="fa fa-edit"></i></a>
      <div class="hide img-rounded popover-content">
        <strong style="text-align:center">Update Followup Status</strong><span class="pull-right ffclose" style="cursor: pointer;"><i class="fa fa-close"></i></span>
        <hr>
        <form class="form-inline" role="form">
          <div class="form-group">
            <select class="form-control fformstatus" name="fformstatus">
              <option value="0">Followups Status</option>
              <option value="VM">VM</option>
              <option value="Callback">Callback</option>
              <option value="Rude">Rude</option>
              <option value="Done">Done</option>
             </select>
          </div>
          <div class="form-group">
            <textarea placeholder="Follow up Comment overview" class="form-control fformcomment"></textarea>
            <input type="text" class="fformffid" hidden="" name="fformffid" value="16">
          </div>
          <div class="form-group">
            <div class="btn btn-primary updatefollowupstatus">Update »</div>
          </div>
        </form>
      </div>
      <!-- Form Content -->
    </td>
  </tr>
</table>

【讨论】:

  • 谢谢罗汉,这个答案也有效。我得到了我的解决方案。
猜你喜欢
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 2019-06-01
  • 2017-01-23
  • 2021-12-26
相关资源
最近更新 更多