2017-05-30 86 views
0

我试图从点击的行窗体中找到表单中的值。我正在使用这个脚本。我能够从表单字段中获得价值。但它给了我相同的价值,它只是从第一行给我的价值,如果点击任何行。从行内找到最接近的值

我想打开表单上的类名为“.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发送值进行处理。

+0

一排没有一个'value' - 这不是提交的表格。没有*行形式*这样的东西。一行有单元格('td'元素),这些单元格有'textContent'和/或'innerHTML'(或JQuery:'text()'和/或'html()')。 –

+0

您可以选择父窗体而不是行。 $(“。updatefollowupstatus”)。click(function(e){var。form($)(this).parents('form') var status = $(form).find(“。fformstatus”)。val() ; var comment = $(form).find(“。fformcomment”)。val(); var ffid = $(form).find(“。fformffid”)。val(); alert(ffid); }); –

回答

2

更好使用.parents()方法,因为form是被点击的按钮的父元素。

请尝试下面的代码。

$(".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); 
}); 
+0

谢谢Prashant,你的建议工作。我必须为每个表单分配动态类名,以便从表单中获取动态值。现在它的工作状态非常好。 – SAHAR

+0

欢迎Sahar!很高兴帮助你。 ;-) –

0

您在.closest('td>.popover-content>form')使用错误的选择[最接近()[1],只是用.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>

+0

谢谢罗汉,这个答案也有效。我有我的解决方案。 – SAHAR