【问题标题】:Input submit name is not being posted输入提交名称未发布
【发布时间】:2017-03-30 05:09:07
【问题描述】:

我有一个带有一个输入字段和提交按钮的表单。我知道可以提交按钮的名称,但由于某种原因,它没有被发布到服务器。

$(document).ready(function(){

  $("form").submit(function(e) {
      e.preventDefault();
      console.log($(this).serialize());
      return false;
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post">
<div class="a">
  <label>Name</label>
  <input name="projectName" type="text">
</div>
<div class="b">
  <input name="newProject" value="Save Project" type="submit"></div>	
</form>
<p>"newProject" field from submit input is not being posted</p>

通过print_r($_POST) 唯一可见的是Array([projectName] =&gt; ""),但表单名称“newProject”不可见,甚至不被发送。

这是一个演示它的小提琴:https://jsfiddle.net/bosLyn1w/

为什么会发生这种情况?如何提交提交输入的名称?

【问题讨论】:

  • 我不确定您的期望是什么——您的代码完全按照编写的方式工作。如果您想使用 jQuery 发出某种 AJAX 请求,那么最好将它放在您的 submit 处理程序中。另外,在我看来,您可以在问题中发布相关的 JavaScript,而不是依靠用户点击您的小提琴——这只是对社区的礼貌。
  • @anied 已修复,我添加了一个代码 sn-p

标签: jquery html forms submit


【解决方案1】:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">  </script>
<script>
$(document).ready(function(){
$('form').on('click', 'input[type=submit]', function(e) {
$(this.form).data('clicked', this.name);      
$('.pVal').html($(this.form).serialize()+ ' <br> '+this.name+'=' +this.value);
console.log($(this.form).serialize());
return false;
});
});
</script>
<form method="post">
<div class="a">
<label>Name</label>
<input name="projectName3" type="text">
</div>
<div class="b">
<input name="newProject4" class="newProject" value="Save Project" type="submit"></div>  
</form>
<p class="pVal"> -- Please put the both fields value here ---</p>

【讨论】:

  • 请使用此代码从输入表单中查看“newProject”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 2012-02-02
相关资源
最近更新 更多