当我想使用 javascript 发送表单时遇到问题!事实上,代码可以很好地发送表单,但不幸的是我找不到将数据放入表单的方法。
当我们按下完成按钮时,无需使用 js,它就能正常工作,bdd 中的操作也能正常工作!
这两种方法的区别是js的post请求中没有Form数据。我已经尝试使用 javacript 创建表单,但无法将名称“Form”放入我的请求中?
那么最好的方法是什么?使用 js 创建一个新表单并发送它还是使用现有的表单?谢谢大家
function recuppoint() {
$.post('../ajax/point.php',{pseudo:pseudo}, function(data) {
console.log('['+data + ']');
$('.infos2').html(data);
var durr = data.split(" :");
var test = durr[1].split(" ");
if(test[1]==0){
$("#Form").submit();
}
console.log(test[1]);
});
}// End of the function
setInterval(recuppoint, 1000);// Refresh it each second
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
?php
if (isset($_POST['Form']))
{I do something with bdd}
?>
<form method="post" id="Form" action="" >
<button type="submit" name="Form">Finish</button>
</form>
为了遵循你们的答案,我尝试这样做,但不起作用!!!!!
我再说一遍,我不需要 ajax 来发送我的表单提交作品,但没有数据!
$.post('/test.php', $('#Form').serialize());
我可以添加我想要的所有路径,没有请求就是发布,提交请求就是发布,没有数据!你能解释一下为什么请求 .submit() 发送时没有数据
第二次更新: 这张图片向您展示了当我使用按钮发布表单时发生的情况,这就是我需要的与 bdd 相关的内容!
也许你能很好地理解我的问题!当我使用 js 发布时:标题中没有数据,因此 chrome 中没有任何内容,我看不到您在图片上看到的部分!
第三次更新:
Jsfiddle : {"error": "Shell 表单不验证{'html_initial_name': u'initial-js_lib', 'form': , 'html_name': 'js_lib', 'html_initial_id': u'initial-id_js_lib ', 'label': u'Js lib', 'field': , 'help_text': '', 'name': 'js_lib'}{'html_initial_name': u'initial-js_wrap', 'form': , ' html_name': 'js_wrap', 'html_initial_id': u'initial-id_js_wrap', 'label': u'Js wrap', 'field': , 'help_text': '', 'name': 'js_wrap'}"}
发现问题:我的表单中没有字段,这就是为什么标题中没有任何内容
<form method="post" id="Form" action="" >
<input type="hidden" name="Form" value="" /> <!-- Try now! ;) -->
<button type="submit" name="Form">Finish</button>
<!-- There are no fields here -->
</form>
最佳答案
您可以使用 serialize()
jQuery 方法。
看这里:
$.post('/your-url', $('form').serialize());
您也不应该使用 setInterval
每秒发送表单。使用 JavaScript 事件会更好。
在这种情况下,您可以在表单上使用 submit
事件,如下所示:
$('form').on('submit', function(e) {
});
要避免默认的浏览器行为(页面重定向),您可以在监听器回调中使用事件对象附带的 preventDefault()
方法。
$('form').on('submit', function(e) {
e.preventDefault();
});
关于javascript - 在javascript中,如何处理表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48262352/