Есть ли способ проверить, является ли форма грязной или нет в JavaScript? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть один пример валидатора формы в скрипте Java.В этом случае, есть ли способ проверить, является ли форма грязной или нет?

Моя платформа - JavaScript

Пожалуйста, найдите соответствующий образец ниже и предложите любое решение.

пример ссылки

фрагмент кода: я использовал как:

if (name.value != name.defaultValue) { 
    alert("#name has changed"); 
    }

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Вам нужна глобальная логическая переменная, которую нужно помнить, когда вы редактируете что-либо в своей форме.

Эта переменная должна изначально быть ложной, а затем, когда пользователь редактирует ввод, она изменяется на true.Когда вы отправляете форму, она снова становится ложной.Теперь вы можете в любое время проверить, является ли грязная переменная истинной или ложной.

Пример кода:

var dirty = false;

var inputs = document.querySelectorAll('input');
for (var i = 0;i < inputs.length)
{
    var input = inputs[i];
    input .addEventListener('input', function()
    {
        dirty = true;
    });
}

var form = document.forms[0];
form.addEventListener('submit, function()
{
    dirty = false;
}
0 голосов
/ 24 октября 2018

у вас есть теги kendo-ui-grid и kendo-validator, поэтому я полагаю, что вы используете kendo framework.если вы хотите увидеть, не загрязнена ли форма, вы должны проверить viewModel в кендо способом sample .

. В основном я создал viewModel, который препятствует интерфейсу ObservableObject и имеет два способапривязка к контейнеру формы.Каждый раз, когда вы изменяете что-то в форме, событие изменения запускается в viewModel, которая устанавливает переменную (dirty) в значение true.

var dirty = false;
var viewModel = new kendo.data.ObservableObject({
    fullname: "test"
});
viewModel.bind("change", function () {
    alert("changed");
    dirty = true;
});
kendo.bind($("#tickets"), viewModel);

Добавьте все поля, которые нужно «наблюдать», в ObservableObject и установитепо их наценке имущество data-bind="value:fieldName"

0 голосов
/ 18 октября 2018

Вы можете использовать JQuery примерно так ...

var _isDirty = false;
$("input[type='text']").change(function(){
  _isDirty = true;
});
...