Javascript 为什么我不能从Ajax加载的内容中获取元素的父元素?
有了这段代码,ajax html可以很好地加载,单击事件也会触发,但是当我尝试获取单击按钮的表单父级时,它似乎失败了。警报的输出为“未定义”。如何获取表单数据Javascript 为什么我不能从Ajax加载的内容中获取元素的父元素?,javascript,jquery,ajax,Javascript,Jquery,Ajax,有了这段代码,ajax html可以很好地加载,单击事件也会触发,但是当我尝试获取单击按钮的表单父级时,它似乎失败了。警报的输出为“未定义”。如何获取表单数据 $( "#offertable" ).load( "offer-get.php", function() { //$('#loadingDiv').hide(); $("#offertable").on('click', '#submit', function(event){ alert($(this).p
$( "#offertable" ).load( "offer-get.php", function() {
//$('#loadingDiv').hide();
$("#offertable").on('click', '#submit', function(event){
alert($(this).parents('form:first').attr("action"));
//event.preventDefault(); // this will prevent from submitting the form
//$(this).prop('disabled',true);
var postData = $(this).parents('form:first').serialize();
var formURL = $(this).parents('form:first').attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR)
{
alert("Offer updated successfully");
},
error: function(jqXHR, textStatus, errorThrown)
{
alert("Failed to update offer");
}
});
return false;
});
} );
我已经尝试在表单上使用submit事件,它将为我提供可以从中获取数据的表单对象
$("#offertable").on('submit', '#updateoffer', function(event){
但它从不开火
编辑:从offer-get.php返回的表单
<tr>
<form action="offer-update.php" id="updateoffer" name="updateoffer" method='post'>
<input type="hidden" name="pendingofferid" value="<?php echo $record['pendingofferid'] ?>">
<input type="hidden" name="offerid" value="<?php echo $record['offerid'] ?>">
<input type="hidden" name="oldpaused" value="<?php echo $record['paused'] ?>">
<input type="hidden" name="oldpayout" value="<?php echo $record['payout'] ?>">
<td><?php echo $record['offerid']; ?></td>
<td><img src="<?php echo $record['picture']; ?>" height="50" width="50"></td>
<td><?php echo $record['name']; ?></td>
<td><?php echo $record['trackinglink']; ?></td>
<td><?php echo $record['country']; ?></td>
<td><?php echo $record['device']; ?></td>
<td>
<?php if ($approved) : ?>
<input type="number" name="payout" min="0" step="0.01" value="<?php echo $record['payout']; ?>">
<?php else: echo $record['payout']; ?>
<?php endif; ?>
</td>
<td>
<?php if ($approved) : ?>
<select name="status" class="form-control required" >
<option value="Live" <?php if(!$paused) echo 'selected="selected"'; ?> >Live</option>
<option value="Paused" <?php if($paused) echo 'selected="selected"'; ?> >Paused</option>
</select>
<?php else: echo 'Pending'; ?>
<?php endif; ?>
</td>
<td>
<?php if ($approved) : ?>
<button type='submit' name='submit' id='submit' class='btn btn-userid'>Update</button>
<?php endif; ?>
</td>
</form>
</tr>
显然,这不是全部代码,我不想发布客户端敏感信息,但这应该足够了。此部分针对DB查询的每个结果循环。因此,有多个表单具有相同的ID。如果我对每个表单使用不同的ID,我不确定如何触发事件,因为在返回数据之前,行数是未知的。我个人会使用。closestform,但我认为您所拥有的应该可以工作。。。。。。或者这个表格!发布HTML怎么样?什么!?使用相同id的多个表单是什么意思?不能在同一页上重复使用id值。Id值必须是唯一的。