2013-04-14 4 views
0

Я пытаюсь включить кнопку удаления, заставляя пользователя вводить слово «DELETE» в текстовый ввод. Приведенный ниже код работает, но он чувствителен к регистру, что означает, что если кто-то, например, набирает «delete», он не будет работать.Верхняя часть внутри ng-disabled

Может ли кто-нибудь посоветовать, как мне нужно будет изменить код ниже, чтобы сделать регистр неприемлемым?

<div ng-app=""> 
    <div ng-controller="test"> 
    <label>Type the word DELETE below to confirm</label> 
    <input type="text" placeholder="TYPE DELETE" ng-model="deletetext" /> <br /> 
    <button class="btn btn-danger" ng-disabled="deletetext != 'DELETE'">DELETE</button> 
    </div> 
</div> 

Благодаря

+0

Вы пробовали 'deletetext.toUpperCase() =«DELETE''!? И если угловой это не позволяет, попробуйте переместить его в функцию контроллера. 'hasTypedDelete()' – Thilo

+0

Спасибо Thilo, мне показалось, что я пробовал toUpperCase() раньше, но у меня должно получиться что-то не так, как я только что попробовал, и он отлично работает. еще раз спасибо – lankyplanks

ответ

1

предложение Тило о использовании deletetext.toUpperCase()! = 'DELETE' устранили эту проблему. Этот скорректированный код теперь выглядит следующим образом:

<div ng-app=""> 
    <div ng-controller="test"> 
    <label>Type the word DELETE below to confirm</label> 
    <input type="text" placeholder="TYPE DELETE" ng-model="deletetext" /> <br /> 
    <button class="btn btn-danger" ng-disabled="deletetext.toUpperCase() != 'DELETE'>DELETE</button> 
    </div> 
</div> 
1

deletetext.toUpperCase() != 'DELETE' работы. Вы также можете добавить $ watch к deletetext и заставить его быть в верхнем регистре. Лучше юзабилити IMO.

$scope.$watch('deletetext', function(newValue, oldValue){ 
    $scope.deletetext = newValue.toUpperCase(); 
}); 

Вот полный пример: http://jsfiddle.net/GLCAT/