我有一个问题,如何使用$(this)方法获取poke的输入值。
$(" #pke")工作var counter = parseInt($("#poke").val());
但是我需要使用$(this),因为我在表单中有while循环
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 :(得分:0)
您可以在ajax
查询中设置此上下文。试试这种方式:
$.ajax({
...
context:this,
...
});
然后$(this)
应该是form
而不是ajax
请求
答案 1 :(得分:0)
你的问题并没有表明使用循环的逻辑; 然而,要循环遍历表单中的所有输入,您可以像这样使用:
$('#formId input[type="text"]').each(function(){
// Do your magic here
});
参考:https://stackoverflow.com/a/10322919/7735285
更新:您更新的HTML显示HTML上方的PHP循环可能会创建具有相同ID的多个元素,这是错误的。