2017-06-20 77 views
-1

我有一个问题如何使用$(this)方法获取poke的输入值。 $( “#戳”)正在var counter = parseInt($("#poke").val());但我需要使用$(本),因为我有,而在形式循环 JS:

$(document).ready(function() { 
    $('form').on('submit', function (e) { 
     e.preventDefault(); 
     $.ajax({ 
      type: "post", 
      data: $(this).serialize(), 
      url: "index2.php", 
      success: function (data) { 
       var counter = parseInt($("#poke").val()); 
       counter++; 
       $("#poke").val(counter); 
       $("#submit").text(counter); 
       alert("form was submited"); 
      } 
     }); 
     return false; 
    }); 
}); 

HTML:

<?php 
       $result = $mysqli->query("SELECT * FROM users") or die($mysqli->error); 
       while ($users = $result->fetch_assoc()) { 
        ?> 
        <form class="table" name="table" id="table" method="post" enctype="multipart/form-data" autocomplete="off"> 
         <div class="Table-row" id="table"> 
          <div class="Table-row-item" data-header="Header1"><input class="clear" type="text" name="first_name" id="first_name" value="<?php echo $users['first_name'] ?>"></div> 
          <div class="Table-row-item" data-header="Header2"><input class="clear" type="text" name="last_name" id="last_name" value="<?php echo $users['last_name'] ?>"></div> 
          <div class="Table-row-item" data-header="Header3"><input class="clear" type="text" name="email" id="email" value="<?php echo $users['email'] ?>"></div> 
          <div class="Table-row-item" data-header="Header4"><input class="clear" type="text" name="poke" id="poke" value="<?php echo $users['poke']?>"></div> 
          <div class="Table-row-item" data-header="Header5"><input class="poke" type="submit" value="Poke" id="submit" name="submit"></div> 
          <input class="clear" type="hidden" id="hidden_<?php echo $users['id']?>" name="hidden" value="<?php echo $users['id']?>"> 
         </div> 
        </form> 
            <?php 
            } ?> 
+0

有类似'var $ this = $(this)'out ajax then'var counter = parseInt($ this .val());' – guradio

+2

_while_ loop在哪里?似乎你正在创建具有相同ID的多个元素。 – Satpal

+0

你是什么意思,通过while循环的JS形式,你的意思是说有多种形式?但是,你会有多个具有相同ID的元素。 – Beri

回答

0

您可以设置这个在ajax查询中的上下文。试着这样说:

$.ajax({ 
... 
context:this, 
... 
}); 

然后$(this)应该是form代替ajax要求

0

你的问题并没有多大显示了使用循环的逻辑; 尚未通过形式的所有输入循环中,您可以使用这样的:

$('#formId input[type="text"]').each(function(){ 
     // Do your magic here 
}); 

编号:https://stackoverflow.com/a/10322919/7735285

更新:更新后的HTML显示,PHP循环的HTML上面可能会创建具有相同的多元素ID,这是错误的。