[英]AJAX POST not sending all data
我在表单中有以下 HTML 代码,顶部的(政策)在帖子中发送,但第二个没有(mfa)。 我不知道为什么会这样,有什么想法吗?
<label class="switch switch-flat">
<input class="switch-input" type="checkbox" id="policy" method="post" name="policy" <?php if($row['policy'] === '1') echo 'checked="checked"';?> />
<span class="switch-label" data-on="Yes" data-off="No"></span>
<span class="switch-handle"></span>
</label>
<label for="policy">Does the vendor organization have a written Information Security policy?</label>
</td>
</tr>
<tr>
<td>
<div class="col-md-12">
<label class="switch switch-flat">
<input class="switch-input" type="checkbox" name="mfa" id="mfa" method="post" <?php if($row['mfa'] === '1') echo 'checked="checked"';?> />
<span class="switch-label" data-on="Yes" data-off="No"></span>
<span class="switch-handle"></span>
</label>
<label for="mfa">Do they support and utilize multi-factor authentication?</label>
</td>
这是我发送帖子数据的ajax。 当我在 Dev 工具中浏览要发送的标头时,我看到许多其他 HTML 名称正在运行,但除了最上面的“策略”之外,大多数列为切换复选框的名称都没有发送。
<script type='text/javascript'>
/* attach a submit handler to the form */
$('#update').submit(function(e){
e.preventDefault();
$.ajax({
url:'updateVendor.php',
type:'post',
data:$('#update').serialize(),
success:function(){
//whatever you wanna do after the form is successfully submitted
}
});
});
</script>
复选框仅在被选中时才被认为具有值。 否则,它不会包含在提交的表单数据中。
从MDN 网站:
注意:如果一个checkbox在提交表单时未勾选,则没有提交给服务器的值代表其未勾选状态(例如value=unchecked); 该值根本不提交给服务器。 如果您想在未选中时为复选框提交默认值,您可以在表单中包含一个
<input type="hidden">
具有相同name
和value
,可能由 JavaScript 生成。
规避此限制的一个技巧是包含具有默认值的隐藏输入。 例如
<input name="mfa" type="hidden" value="0">
<input name="mfa" type="checkbox" value="1">
使用这种方法, mfa
的值将始终与表单数据一起提交。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.