【问题标题】:Running jquery on webform submit在 webform 提交上运行 jquery
【发布时间】:2017-02-11 18:41:15
【问题描述】:

我创建了一个 jquery 函数,用于根据用户输入对 Web 表单进行评分,并在用户单击“评分”按钮时在 Web 表单上禁用的数字字段中显示评分。我还希望该功能在用户单击提交时再次运行,以捕获用户单击评分按钮后对响应所做的任何更改。我尝试了几种不同的方式来引用提交按钮,但都没有奏效。有没有办法在点击提交和实际提交表单之间运行 jquery?

function caclulateScore() {
// does awesome stuff
};
$("#score").click(calculateScore);
//This works as intended.

$("#submit").click(calculateScore);
$("#submit").submit(calculateScore);
$("input[name=op]").click(calculateScore);
//These do not.

【问题讨论】:

  • 使用 jquery 提交,例如:.closest("form").submit();

标签: jquery drupal-7 drupal-webform


【解决方案1】:

试试下面的代码。它会在实际提交表单之前调用calculateScore()

$("#submit").submit(function(){
    calculateScore();
});

【讨论】:

  • 那也没用。 :( 它只是提交表单而不运行函数。
  • 查看this 是否有效。防止默认();将停止提交表单。
  • 感谢您的支持。我认为部分问题在于它可能是错误的元素引用。我在函数之前添加了一个警报,但它没有触发。这是包含按钮的 div。它没有像其他所有东西一样的元素 ID。 <div class="form-actions"><input class="webform-submit button-primary form-submit" type="submit" name="op" value="Submit"></div>
  • 如果元素没有id="submit"$("#submit") 将不起作用。试试this
  • 我明白了!谢谢你的帮助!我无法分配元素 ID,因为它是由 webform 模块提供的。我只是使用了类选择器并在之后添加了一行来提交表单。似乎完全按照我的意愿工作。 $(".form-submit").click(function(e){ e.preventDefault(); calculateScore(); $(this).closest("form").submit(); });
【解决方案2】:

使用jquery提交:

$( "#other" ).click(function() {
  $( "#target" ).submit();
});

【讨论】:

  • 感谢您的回复。我是编码新手。我使用这些 ID 还是特定于表单的 ID?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 2015-09-20
相关资源
最近更新 更多