使用jquery

时间:2018-03-19 12:03:42

标签: php jquery html

我在数据库值的循环中有模态弹出窗口。模态框包含一个具有隐藏输入值的表单和一个用于插入消息的textarea。我可以在stackoverflow的帮助下获得textbox的值。

参考: bootstrap modal textarea showing empty alert on click jquery

但是当我在警告框中提醒隐藏值时,它不会根据警告框中的循环而改变。当我使用inspect元素检查时,隐藏元素的值在循环中发生变化,但是当我提醒它时,它显示的是相同的值。

CODE:

<?php 
$sn=1;$rep=1;
foreach($view_queries as $q) {?>
<a href="#" data-toggle="modal" data-target="#create_reply'.$rep.'" style="color:red;">Reply</a>
?>
<!-- create reply model -->
<div id="create_reply<?php echo $rep;?>" class="modal fade" role="dialog">
<div class="modal-dialog">

<!-- Modal content-->
<div class="modal-content">
<form id="send_reply" method="post" antype="multipart/form-data">
<input type="hidden" name="query_id" value="<?php echo $q->query_id;?>" />
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Reply To Query</h4>
</div>
<div class="modal-body">
<label>Query:</label>
<p><?php echo ucfirst($q->query);?></p>

<div class="form-group">
<label>Reply:</label>
<textarea rows="3" name="mesg" id="<?php echo $sn;?>mesg" class="form-control"></textarea>
</div>

</div>
<div class="modal-footer">
<button type="button" id="" data-target="<?php echo $sn;?>mesg" class="btn btn-default form_click">Reply</button>
</div>
</form>
</div>

</div>
</div>
<!-- create reply model ends -->
<?php $sn++; $rep++; }?>

这是在警报中检查价值的脚本:

 <script>
 $(document).ready(function(){
  $(document).on("click",".form_click",function(event){
  event.preventDefault();
  var a=$('#' + $(this).data('target')).text();
  var query_id=$('#query_id').val();
  alert(query_id);
  });
 });
 </script>

1 个答案:

答案 0 :(得分:0)

更简单的选项是使用data-*属性在您使用data-target

时保留查询ID
<button type="button" data-id="<?php echo $q->query_id;?>" data-target="<?php echo $sn;?>mesg" class="btn btn-default form_click">Reply</button>

然后你可以轻松使用

var query_id= $(this).data('id');

您的实现问题是您没有指定隐藏字段的ID,因此在获取值时必须获取undefined

<input type="hidden" name="query_id" value="<?php echo $q->query_id;?>" />

要获取其值,请使用当前元素的DOM关系。

使用.closest(selector)遍历普通父母,然后使用.find()使用Attribute Equals Selector [name=”value”]获取元素

相关代码

var query_id= $(this).closest('form') //target common parent
          .find('[name=query_id]') //target element
          .val();

&#13;
&#13;
$(document).ready(function() {
  $(document).on("click", ".form_click", function(event) {
    event.preventDefault();

    var query_id = $(this).closest('form') //target common parent
      .find('[name=query_id]') //target element
      .val();

    console.log(query_id);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="send_reply" method="post" antype="multipart/form-data">
  <input type="hidden" name="query_id" value="1" />
  <div class="modal-footer">
    <button type="button" id="" class="btn btn-default form_click">Reply</button>
  </div>
</form>
&#13;
&#13;
&#13;