You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用validatePromo函数成功后,如何获取按钮的rel属性?

这有几个靠谱的方法能帮你在validatePromo函数执行成功后拿到按钮的rel属性,根据你的场景选就行:

方法1:通过$event传递点击事件对象

这是最直接的方式,修改按钮的ng-click,把点击事件对象传进函数里:

<button type="submit" rel="next" class="btn btn-primary btn-block" ng-click="vm.validatePromo($event)">Validate</button>

然后在你的validatePromo函数里,就能通过事件对象拿到触发点击的按钮元素,进而获取rel属性:

vm.validatePromo = function(event) {
  // 这里是你的验证逻辑,成功后执行下面的代码
  // 用currentTarget更稳妥,确保拿到的是绑定ng-click的按钮本身(避免按钮有子元素时target指向子元素)
  const buttonRel = event.currentTarget.getAttribute('rel');
  console.log(buttonRel); // 输出 "next"
};

方法2:通过DOM选择器直接定位元素

如果不方便修改ng-click的参数,也可以在验证成功后,通过按钮的类或唯一标识来获取元素:

vm.validatePromo = function() {
  // 你的验证逻辑...
  // 验证成功后获取按钮(建议给按钮加唯一id,避免同类按钮干扰)
  const promoButton = document.querySelector('.btn-primary.btn-block');
  if (promoButton) {
    const buttonRel = promoButton.getAttribute('rel');
    console.log(buttonRel);
  }
};

小提醒:如果页面上有多个相同类的按钮,最好给这个按钮加个唯一id(比如<button id="promoValidateBtn" ...>),然后用document.getElementById('promoValidateBtn')来获取,这样不会出错。

方法3:用AngularJS的绑定方式(推荐)

既然用了AngularJS,尽量遵循它的MVVM模式,避免直接操作DOM。你可以把rel的值绑定到控制器的变量上:

<button type="submit" rel="{{vm.buttonRel}}" class="btn btn-primary btn-block" ng-click="vm.validatePromo()">Validate</button>

然后在控制器里初始化这个变量:

vm.buttonRel = 'next';

vm.validatePromo = function() {
  // 你的验证逻辑...
  // 验证成功后直接用vm.buttonRel就行
  console.log(vm.buttonRel); // 输出 "next"
};

这种方式不需要手动操作DOM,更符合AngularJS的设计理念,也更容易维护和测试。

内容的提问来源于stack exchange,提问作者Sukesh Gurmekodi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:18:30