Как проверить текстовое поле грязное или нет

Привет, это мой html-код

 <th style="width:90px">
 <span>ID</span><img class="serverRP_ajax-loader" src="loader_green_32.gif" /><input type="text"  id="abc" ng-model="rpFilter.ResourcePlanID.value" />                           
                    </th>

Я хочу включить loader_green_32.gif только тогда, когда в текстовое поле abc введено какое-то значение. $ dirty невозможно, потому что я не использую тег формы

Вы должны использовать form API, это упростит вам жизнь, почему вы не хотите его использовать?

Pankaj Parkar 11.04.2018 11:37
2
1
991
2

Ответы 2

Вы можете добавить ng-if="rpFilter.ResourcePlanID.value" к image tag.

Это сделает это изображение видимым, только если вы введете значение в текстовое поле.

<th style="width:90px">
 <span>ID</span>
 <img ng-if="rpFilter.ResourcePlanID.value" class="serverRP_ajax-loader" src="loader_green_32.gif" />
 <input type="text"  id="abc" ng-model="rpFilter.ResourcePlanID.value" />
</th>

Вот рабочий ПРИМЕР

Примечание: Если вы хотите просто проверить изменено ли поле или нет, то вам нужно использовать $dirty, а для этого обязательно нужно взять formtag

Вот как это происходит,

Вы должны использовать имя атрибута,

ng-if="myForm.resourceplanid.$dirty"

<form name="myForm">
    <th style="width:90px">
    <span>ID</span>
    <img ng-if="myForm.resourceplanid.$dirty" class="serverRP_ajax-loader" src="loader_green_32.gif" />
    <input type="text" name="resourceplanid" id="abc" ng-model="rpFilter.ResourcePlanID.value" />
    </th>
</form>

Как сказал OP, скрывайте загрузчик только тогда, когда флажок ввода становится dirty, поэтому в этом случае ng-if="rpFilter.ResourcePlanID.value" будет добавлять / удалять, даже если значение предварительно заполнено в случае редактирования объекта. Надеюсь, вы поняли, что я хотел сказать. поле $dirty имеет совершенно другое значение

Pankaj Parkar 11.04.2018 11:45

Смотрите его описание под его кодом, не судите только по названию. Я собирался сказать ему, чтобы он изменил название.

Sravan 11.04.2018 11:46

@Ritesh Gore, если вы хотите показать изображение, когда что-то есть в текстовом поле, измените заголовок на что-то вроде. отображать изображение на основе значения текстового поля

Sravan 11.04.2018 11:48

@PankajParkar: Спасибо

Ritesh Gore 11.04.2018 11:52

@Sravan удалил мой голос против, я сосредоточился на части $dirty, поскольку он явно упомянул об этом в вопросе

Pankaj Parkar 11.04.2018 11:52

@Pankaj Parkar, да ладно, сверху избегайте дальнейших недоразумений, я также добавил код для проверки $dirty с помощью формы и обновил свой ответ. :)

Sravan 11.04.2018 11:58
<input ng-model="somefield">
<span ng-show="!somefield.length">Please enter something!</span>
<span ng-show="somefield.length">Good boy!</span>
You could also use ng-hide="somefield.length" instead of ng-show="!somefield.length" if that reads more naturally for you.

A better alternative might be to really take advantage of the form abilities of Angular:

<form name="myform">
  <input name="myfield" ng-model="somefield" ng-minlength="5" required>
  <span ng-show="myform.myfield.$error.required">Please enter something!</span>
  <span ng-show="!myform.myfield.$error.required">Good boy!</span>
</form> 

<md-content> <md-checkbox ng-checked = "myField.length"> Другое </md-checkbox> <input ng-model = "myField" placeholder = "Укажите" type = "text"> </ md -содержание>

Deep T 11.04.2018 11:39

Другие вопросы по теме