大佬教程收集整理的这篇文章主要介绍了AngularJS指令:模糊之后不会触发ng-click,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<input type="text" ng-model="client.phonenumber" phone-number> <button ng-click="doSomething()">Do Something</button>
.directive("phonenumber",function($compilE) { return { reStrict: 'A',scope: true,link: function(scope,element,attrs) { scope.mobilenumberIsValid = true; var errorTemplate = "<span ng-show='!mobilenumberIsValid'>Error</span>"; element.after($compile(errorTemplatE)(scopE)).on('blur',function() { scope.$apply(function() { scope.mobilenumberIsValid = /^\d*$/.test(element.val()); }); }); } }; });
看着demo,如果在手机号码末尾添加“a”,点击按钮,doSomething()就不会被调用.如果再次单击该按钮,则调用doSomething().
为什么第一次没有调用Something()?任何想法如何解决这个问题?
注意:保持模糊验证是很重要的.
正如其他答案所解释的那样,按钮在按钮发生之前的一个onmouseup事件之前被跨越的外观移动,从而导致您遇到的问题.完成你想要的最简单的方法是以这样的方式来调整窗体,使得跨度的外观不会导致按钮移动(这通常是从UX角度来看是一个好主意).您可以通过将输入元素包装在具有白色空间的样式的div中:Nowrap来实现.只要跨度有足够的水平空间,按钮将不会移动,并且ng-click事件将按预期工作.
<div id="wrapper"> <div style='white-space:Nowrap;'> <input type="text" ng-model="client.phonenumber" phone-number> </div> <button ng-click="doSomething()">Do Something</button> </div>
以上是大佬教程为你收集整理的AngularJS指令:模糊之后不会触发ng-click全部内容,希望文章能够帮你解决AngularJS指令:模糊之后不会触发ng-click所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。