gpt4 book ai didi

javascript - angularJS 绑定(bind)到输入的回车键,如果输入是按钮则提交

转载 作者:行者123 更新时间:2023-11-30 12:29:43 28 4
gpt4 key购买 nike

我有这样的指令,去模态窗口中的下一个输入(或按钮):

.directive('autoVrm', function () {
return function (scope, element, attrs) {
var counter = 0;
element.bind("keydown keypress", function (event) {
console.log(element);
if(event.which === 13) {
counter++;
event.preventDefault();
var elementToFocus = element.find('input')[counter] || element.find('button')[1];
console.log(elementToFocus.type);
if(angular.isDefined(elementToFocus))
elementToFocus.focus();
if (elementToFocus.type === 'button'){
counter = -1;
elementToFocus.bind("keydown keypress", function (eventSubmit) {
if(eventSubmit.which === 13) {
console.log('submit');
}
});
}
}
});
};

但我有一个麻烦,如果我在按钮上,然后单击输入我得到:

未捕获的类型错误:undefined 不是函数

但是为什么?如何让输入点击提交表单?不依赖于 Controller ?

最佳答案

为未捕获的类型错误尝试 angular.element(elementToFocus).bind。

关于您的新评论:

如果这是在你的 Controller 中定义的

$scope.registerUser = function() {
...
}

然后在指令中简单地调用它

elementToFocus.bind("keydown keypress", function (eventSubmit) {
if(eventSubmit.which === 13) {
scope.registerUser();
}
});

作为一种猜测,您可以做一些事情,例如检查 attrs 参数以获取“data-ng-click”的值并调用适当的函数:

elementToFocus.bind("keydown keypress", function (eventSubmit) {
if(eventSubmit.which === 13) {
if (attrs.dataNgClick == "registerUser()" {
scope.registerUser();
}
else if (attrs.dataNgClick == "sign()" {
scope.sign();
}
else if (attrs.dataNgClick == "frgtPassword()" {
scope.frgtPassword();
}
}
});

关于javascript - angularJS 绑定(bind)到输入的回车键,如果输入是按钮则提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106592/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com