jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 具有大量可点击区域的HTML表单大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在重新措辞我昨天发布的类似问题.我不确定这是不是我应该采取的方式.

我的目标是创建一个包含多个input type =“hidden”元素的表单,以及一个覆盖页面大面积并包含多个div元素的单击区域.当单击任何页面区域时,结果应该与如果有人点击了一个SUBMIT按钮.在这种情况下,结果会将用户带到一个新的URL并传递表单中包含的隐藏参数数据.(我们目前使用没有表单的URL参数,但需要更改我们的解决方案使用表格).

<div>    <!-- start of clickable area of page -->
<form>
    <input type="hidden"...>
    <input type="hidden"...>
    <div>
        xxxxx
    </div>
    <div>
        xxxxx
    </div>
</form>
</div>    <!-- end of clickable area of page -->

解决方法

由于您的表单除了提交之外不需要任何用户交互,因此您可以将 onclick event的处理程序绑定到整个表单.在该处理函数中,提交表单.

例如:

jQuery('form').on('click',function() {
  jQuery(this).submit();
});


/* This part purely for demonstration purposes */
jQuery('form').on('submit',function() {
  console.log('SUBMITTED!');
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <input type="hidden" ...>
  <input type="hidden" ...>
  <div>
    xxxxx
  </div>
  <div>
    xxxxx
  </div>
</form>

供参考,见on()submit().
作为on()的替代,您可以使用click().

顺便说一句,您可能只能使用DOM submission method

this.submit();

我使用jQuery来触发提交,因为我想捕获提交事件以显示用于演示目的的消息. DOM提交方法不会触发jQuery的提交事件.见Jquery submit vs. javascript submit.

编辑:

回答评论中的问题:

不,你可以把它放在这样的处理函数中:

jQuery('form').on('click',function() {
  this.submit();
});

除非您想要三种形式中的每一种都有不同的功能,否则我建议将一个处理程序绑定到所有这些形式.下面,我给了每个表单相同的类,并将处理程序绑定到该类.

如果页面上不存在其他表单,则可以绑定到每个表单标记:jQuery(‘form’).我更喜欢用一堂课来保持井井有条.我可能稍后添加一个表单,我不想受此处理程序的影响,忘记了每个表单都绑定了一个处理程序.

jQuery('.clickform').on('click',function() {
  jQuery(this).submit();
});

/* This part purely for demonstration purposes */
jQuery('.clickform').on('submit',function() {
  var name = jQuery(this).data('name');
  console.log('Submitted ' + name);
  return false;
});
.clickform {
  border: 1px solid gray;
  margin: 0 0 .5em;
  padding: .25em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form class="clickform" action="" method="post" enctype="application/x-www-form-urlencoded" data-name="form #1">
  <input type="hidden" name="hidden1" value="value1">
  <input type="hidden" name="hidden2" value="value2">
  <div>Form 1,Content 1</div>
  <div>Form 1,Content 2</div>
</form>

<form class="clickform" action="" method="post" enctype="application/x-www-form-urlencoded" data-name="form #2">
  <input type="hidden" name="hidden1" value="value1">
  <input type="hidden" name="hidden2" value="value2">
  <div>Form 2,Content 1</div>
  <div>Form 2,Content 2</div>
</form>

<form class="clickform" action="" method="post" enctype="application/x-www-form-urlencoded" data-name="form #3">
  <input type="hidden" name="hidden1" value="value1">
  <input type="hidden" name="hidden2" value="value2">
  <div>Form 3,Content 1</div>
  <div>Form 3,Content 2</div>
</form>

注意在处理函数中使用this keyword.在此上下文中,这指的是单击的特定表单元素,因为它是事件发生的位置.

this: As a DOM event handler

大佬总结

以上是大佬教程为你收集整理的jquery – 具有大量可点击区域的HTML表单全部内容,希望文章能够帮你解决jquery – 具有大量可点击区域的HTML表单所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: