我有一个让我疯狂的奇怪问题! 我想使用jquery-form版本3.46.0通过ajax提交HTML表单,然后在服务器上获取POST数据,但我的提交按钮的名称不会显示在发布数据!也许这个lib有问题吗?
这是我的代码:
<form id="form" action="test.php" method="post">
<input name="email" type="email" placeholder="Email" required>
<!-- And yes! I didn't use an input with type submit because
I need my button to have some HTML content and applied css styles to them. -->
<button id="submit" type="submit" name="myFormName">
<span class="label">Submit</span>
</button>
</form>
<div id="formResult" style="display: block; margin: 20px 0; padding: 10px; background-color: #fbe6e6;" role="alert"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="//oss.maxcdn.com/jquery.form/3.50/jquery.form.min.js"></script>
<script>
jQuery(document).ready(function($) {
$('#submit').on('click', function(e) {
e.preventDefault();
$('#form').ajaxSubmit({
clearForm: true,
target: '#formResult',
success: function() {
// do sth
},
error: function() {
// do sth
}
});
});
});
</script>
这是test.php文件:
<?php
var_dump($_POST);
我需要按照预期在服务器上的POST数据中显示我的提交按钮的名称......但它没有!有人有任何想法吗?
答案 0 :(得分:0)
如果您使用name作为按钮,那么在作为$ _POST时,该值将显示为发布数据。而不是使用名称尝试使用id或只是删除它,如果你没有任何使用
答案 1 :(得分:0)
我们可以通过以下方式解决此问题-
$('#myForm').submit(function(event){
event.preventDefault();
$.ajax({
type: "POST",
url: "process.php",
data: $('#myForm').serialize()+"&btnSubmitName=true",
success: function(response){
$('#resultDiv').html(response);
}
});
});
答案 2 :(得分:-1)
<div><a href="javascript:foo1()">
<div class="holder"><span class="label">Submit</span></div>
<div class="loader"><i class="fa fa-circle-o-notch fa-spin"></i></div></a></div>
并实施foo1以提交表格。