[英]Why isn't submit inputs and submit buttons submitted in form when using JavaScript to submit form?
myform1
发送button
与价值button-value
到服务器,但myform2
和myform3
没有。 为什么是这样?
<?php
if(empty($_POST)){
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Testing</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$( "#myform2, #myform3" ).submit(function( event ) {
event.preventDefault();
console.log(this,$(this).find(":input,:button").serializeArray());
alert('submit')
this.submit();
});
});
</script>
</head>
<body>
<form name="myform" id="myform1" method="post">
<button value="button-value" name="button" type="submit">button</button>
<input type="test" value="123" name="data">
</form>
<form name="myform" id="myform2" method="post">
<button value="button-value" name="button" type="submit">button</button>
<input type="test" value="123" name="data">
</form>
<form name="myform" id="myform3" method="post">
<input value="button-value" name="button" type="submit">
<input type="test" value="123" name="data">
</form>
</body>
</html>
<?php
}
else {echo('<pre>'.print_r($_POST,1).'</pre>');}
?>
表单可以有多个提交按钮。 如果调用表单的submit方法,则无法推断使用了哪个submit。 要获得提交输入以在帖子中注册,您必须积极使用它来提交表单。 我可以想到两种解决方法。
您可以在<input type="hidden">
字段中添加默认值。 如果以编程方式提交表单,则将隐藏字段用作值。 如果手动单击“提交”按钮,则将在以后的表单中使用该按钮。
<form name="myform" id="myform2" method="post">
<input type="hidden" value="button-value" name="button">
<button value="button-value" name="button" type="submit">button</button>
<input type="test" value="123" name="data">
</form>
click
事件,而不是submit
事件 您也可以只触发表单按钮的click事件,这将触发POST中具有适当值的表单的submit
。 在您当前的代码中,此示例不太实用,因为正常的提交(将在触发click事件后触发)会被阻止并阻止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.