为什么在使用 JavaScript 提交表单时不提交输入和提交按钮
Why isn't submit inputs and submit buttons submitted in form when using JavaScript to submit form?
myform1
将值button-value
的button
发送到服务器,但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>');}
?>
表单触发
可以有多个提交按钮。 如果调用表单的提交方法,则无法推断使用了哪个提交。 要获得提交输入以在帖子中注册,您必须主动使用它来提交表单。 我可以想到两种方法。
放置在隐藏输入中的默认值
您可以在<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
事件
您也可以只触发表单按钮的单击事件,该事件反过来将触发表单在 POST 中具有适当值的表单submit
。 对于您当前的代码,将其放在示例中不太实用,因为nomal提交(将在触发单击事件后触发)被中断和阻止。
相关文章:
- onclick在使用jquery附加时不触发提交输入
- 如何通过按Enter提交输入表格,但在按shift和Enter时不提交
- 单击按钮提交输入字段值
- 提交输入时运行函数
- 使用jquery UI next按钮提交输入字段值,php将返回结果
- 提交输入不'不要在IE和Firefox中发布
- 在使用HTML和Javascript后,我需要在表单上提交输入以显示在页面上
- 提交输入类型=“;图像“;到另一个servlet时,未能返回任何参数
- 如何停止提交输入中的空字段
- HTML5 和 Javascript 上传进度条 - 按钮与提交输入类型
- 表单未按预期提交输入类型:文件
- 如何在提交表单时单击提交输入字段开始此 JQuery 验证
- 从提交输入对函数的单击调用不起作用
- 提交输入不会触发任何内容
- 为什么在使用 JavaScript 提交表单时不提交输入和提交按钮
- 使提交输入不可点击
- 在使用javascript打开页面时自动提交输入
- jQuery-提交表单..,但也传递提交输入名称和ID
- 在表单标记外自动填充和提交输入字段
- 提交/输入后,将焦点放在相同的输入字段