gpt4 book ai didi

jquery-ui - 使用 AngularJS 和表单验证禁用 jQuery 按钮

转载 作者:行者123 更新时间:2023-12-04 23:57:58 25 4
gpt4 key购买 nike

我想根据表单验证禁用我的 jQuery 按钮。根据文档,使用以下语法的常规按钮相当容易:

 <button ng-click="save(user)" ng-disabled="form.$invalid">Save</button>

但是,当更改为 jQuery UI 按钮时,它不再起作用。我假设 Angular 在 jQuery UI 和 AngularJS 之间没有真正的绑定(bind),因此需要一个指令来执行以下操作:
$("button" ).button( "option", "disabled" );

是这种情况还是有其他选择?我正在尝试做的一个 jsFiddle 在这里: http://jsfiddle.net/blakewell/vbMnN/ .

我的代码如下所示:

查看
<div ng-app ng-controller="MyCtrl">
<form name="form" novalidate class="my-form">
Name: <input type="text" ng-model="user.name" required /><br/>
Email: <input type="text" ng-model="user.email" required/><br/>
<button ng-click="save(user)" ng-disabled="form.$invalid">Save</button>
</form>
</div>

Controller
function MyCtrl($scope) {
$scope.save = function (user) {
console.log(user.name);
};

$scope.user = {};

};

$(function () {
$("button").button();
});

最佳答案

好吧,问题在于 Angular ,您应该制定指令来应用您的 JQuery 插件。

所以在这里你可以这样做:

//NOTE: directives default to be attribute based.

app.directive('jqButton', {
link: function(scope, elem, attr) {
//set up your button.
elem.button();

//watch whatever is passed into the jq-button-disabled attribute
// and use that value to toggle the disabled status.
scope.$watch(attr.jqButtonDisabled, function(value) {
$("button" ).button( "option", "disabled", value );
});
}
});

然后在标记中
<button jq-button jq-button-disabled="myForm.$invalid" ng-click="doWhatever()">My Button</button>

关于jquery-ui - 使用 AngularJS 和表单验证禁用 jQuery 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607912/

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