在javascript中,如何处理表单?

时间:2018-01-15 11:45:31

标签: javascript php jquery ajax forms

当我想用javascript发送表单时,我遇到了问题!事实上,代码可以很好地发送表单,但不幸的是,我无法找到将数据放入表单的方法。

当我们按下完成按钮而没有js时,它运行良好并且bdd中的动作正在工作!

两种方法之间的区别在于post请求中的js no Form数据。我已经尝试使用javacript创建一个表单但是我不能把这个名字和#34; 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>
&#13;
&#13;
&#13;

为了跟随你的答案,我尝试这样做而不工作!!!!!

我再说一遍,我不需要ajax来发送我的表单提交作品,但没有数据!

&#13;
&#13;
$.post('/test.php', $('#Form').serialize());
&#13;
&#13;
&#13;

我可以添加所有路径我想要没有请求是帖子提交请求是帖子没有数据!你能解释一下为什么发送请求.submit()没有数据

第二次更新:form data headers in chrome 这张照片显示了当我使用按钮发布表单时发生的事情,这是我对bdd的需求!

也许你能理解我的问题!当我使用js发布时:标题中没有数据,所以没有任何内容,我无法看到你在图片上看到的部分!

第三次更新:

Jsfiddle:{&#34;错误&#34;:&#34;外壳形式不会验证{&#39; html_initial_name&#39;:u&#39; initial-js_lib&#39;,&#39; form& #39;:,&#39; html_name&#39;:&#39; js_lib&#39;,&#39; html_initial_id&#39;:u&#39; initial-id_js_lib&#39;,&#39;标签&#39 ;:u&#39; Js lib&#39;,&#39; field&#39;:,&#39; help_text&#39;:&#39;&#39;,&#39; name&#39;:& #39; js_lib&#39;} {&#39; html_initial_name&#39;:u&#39; initial-js_wrap&#39;,&#39; form&#39;:,&#39; html_name&#39;:&# 39; js_wrap&#39;,&#39; html_initial_id&#39;:u&#39; initial-id_js_wrap&#39;,&#39;标签&#39;:u&#39; Js wrap&#39;,&#39;字段&#39;:,&#39; help_text&#39;:&#39;&#39;,&#39; name&#39;:&#39; js_wrap&#39;}&#34;}

发现问题:我的表单中没有字段表示&#39;为什么标题中没有任何内容

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

您可以使用serialize() jQuery方法。

看这里:

$.post('/your-url', $('form').serialize());

您也不应该每隔setInterval发送一次表单。使用 JavaScript事件会更好。

在这种情况下,您可以在表单上使用submit事件,例如:

$('form').on('submit', function(e) {
});

要避免默认的浏览器行为(页面重定向),您可以在侦听器回调中使用事件对象附带的preventDefault()方法。

$('form').on('submit', function(e) {
   e.preventDefault();
});

答案 1 :(得分:0)

在html中使用表单的最佳方式。在提交表单上调用event.preventDefault,然后使用

执行所需操作
 $(document).ready(function() {
  $('form').on('submit', function(e){
     e.preventDefault();
     //you code here
  });
});