完成第一个后如何执行一个功能

时间:2017-09-12 10:36:04

标签: javascript jquery zend-framework

我有这个输入:

<button type="button" title="test" class="button btn-cart" onclick="productAddToCartForm.submit(this); redirectToCart();">OK</button>

我希望在完成第一个redirectToCart()之后执行productAddToCartForm.submit(this),但不移动第一个,我的意思是productAddToCartForm.submit(this)应该留在onclick按钮。

function redirectToCart()
{
    window.location.replace("http://stackoverflow.com");
}

3 个答案:

答案 0 :(得分:1)

我在这里做了一些假设,但原则应该有效。

首先,我假设Sub DataCapture2() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False Dim x As Workbook Dim y As Workbook Dim ws1 As Worksheet '## Open both workbooks first: Set y = ThisWorkbook Set x = Workbooks.Open(Range("ProjModel")) 'Copy from x: x.Sheets("VAL").Range("SensResultsCopy").Copy 'Paste to Worksheet in y: y.Sheets("1").Range("SensResPaste1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'Close x: x.Close 正在触发AJAX请求,无论是本机还是使用jQuery。在任何一种情况下,您都需要使用承诺来处理此问题。

有一份全面的指南here,但基本内容如下:

  1. 从第一个功能
  2. 返回承诺
  3. 第一个功能成功解析后运行第二个功能
  4. 这可能看起来像这样:

    productAddToCardForm.submit(this)

    我整理了一个快速fiddle,以便更好地证明这一点。

    注意:这是Promises最简单的用例,但它们是一个非常强大的工具。完整规格为here

答案 1 :(得分:0)

不使用内联事件更容易,更首选。

只需创建一个事件监听器并从那里调用这两个函数。

null

答案 2 :(得分:0)

如果productAddToCartForm是您的javascript表单元素,您可以执行以下操作:

productAddToCartForm.onload = redirectToCart;