0

我正在尝试在提交嵌入式表单时触发一个功能。该表单是使用 javascript 嵌入的。我尝试使用通用调用来定位表单,即

$('form').submit(function(){
    alert();
});

这是行不通的。我还尝试使用嵌入的提交按钮来定位,$('#submit_button').on('click', function(){});但也不起作用。

这可能吗?

此表单正在加载此嵌入代码段。

<!-- SharpSpring Form for XXX  -->
<script type="text/javascript">
var ss_form = {'account': 'XXX', 'formID':'XXXX'};
ss_form.width = '100%';
ss_form.height = '1000';
ss_form.domain = 'XXXXXX';
// ss_form.hidden = {'Company': 'XXXX'}; 
</script>
<script type="text/javascript" src="https://external-form.js?ver=1.1.1"></script>
<script type="text/javascript">
var __ss_noform = __ss_noform || [];
__ss_noform.push(['baseURI', 'https://']);
__ss_noform.push(['endpoint', '00000-000-0O0O0-000-000OOO00O']);
</script>

如果我通过控制台运行这个 JS

$('form').submit(function(){
    alert();
});

提交表单时我会收到警报,它不会使用该代码触发事件。

4

2 回答 2

0

很高兴看到一些 HTML

  1. 如果表单在事件处理程序之后加载,例如使用 AJAX,则需要委托:

    $(document).on("submit","form",function(){

  2. 如果表单有任何命名为提交(名称或 ID),那么您需要重命名这些

于 2017-02-21T16:43:49.563 回答
-1

您的代码根本没有嵌入 HTML 表单,因此从未触发过提交事件。

这个:

<!-- SharpSpring Form for XXX  -->
<script type="text/javascript">
  var ss_form = {'account': 'XXX', 'formID':'XXXX'};
  ss_form.width = '100%';
  ss_form.height = '1000';
  ss_form.domain = 'XXXXXX';
  // ss_form.hidden = {'Company': 'XXXX'}; 
</script>

声明一个名为的变量ss_form,其值为标准 JavaScript 对象。他们在该对象上创建新属性。

这个:

<script type="text/javascript">
  var __ss_noform = __ss_noform || [];
  __ss_noform.push(['baseURI', 'https://']);
  __ss_noform.push(['endpoint', '00000-000-0O0O0-000-000OOO00O']);
</script>

尝试将调用的变量设置为__ss_noform调用的对象__ss_noform或常规 JavaScript 数组。

然后它用另一个数组填充对象或数组。

要制作可以提交的表单,您需要一个实际的 HTML<form>元素(可以是硬编码或动态创建的)。该元素也需要设置其actionmethod属性。

当然,如果您使用的是 JQuery,则必须在代码之前引用 JQuery。

这是一个示例,此代码在 Stack Overflow 代码段环境中无法在此处工作,因为不允许提交,但您可以在此处查看工作版本。

$('form').submit(function(){
    alert();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>

  <input type="submit">
</form>

于 2017-02-21T16:44:58.050 回答