2015-04-07 4 views
2

У меня есть handsontable, и я не знаю, какое событие мне нужно для проверки конкретной ячейки, если оно пустое или нет.Handsontable - обязательное поле

технически У меня есть определенная ячейка, которая будет ячейкой, если ячейка пуста, тогда она вызовет обратный вызов или вернет false после выполнения сообщения.

Я использовал beforeChange() функция перед тем, как сделать ставку подходит невозможно.

Вот image link.

ответ

1

Что вы хотите сделать, это использовать опцию validator в настройке columns.

Here - это еще одна информация о валидаторах и пример, но ниже - код, который будет с ним работать.

emptyValidator = function(value, callback) { 
    if (isEmpty(value)) { // isEmpty is a function that determines emptiness, you should define it 
     callback(false); 
    } else { 
     callback(true); 
    } 
} 

Затем в настройках columns, снабжаем каждую колонку и, если этот столбец должен иметь все его клетки не пусто, поставить это как валидатор, так же, как они показывают в handonstable пример страницы.

0

Вот моя работа вокруг: http://jsfiddle.net/Yulinwu/s6p39uje/

Во-первых, вы можете добавить пользовательское свойство с именем required в настройках столбцов.

hot = new Handsontable(container, { 
    ... 
    columns: [{ 
    ... 
    }, { 
     type: 'numeric', 
     format: '$ 0,0.00', 
     required: true, // Add a new setting named required 
     validator: Handsontable.NumericValidator 
    }] 
    }); 

Затем, вы можете добавить слушатель beforeValidate события, используя addHook, который возвращает ложь, если клетка не требуется, но пустые.

hot.addHook('beforeValidate', function(value, row, prop, source) { 
    var ifRequired = this.getCellMeta(row, prop).required; 
    console.log(ifRequired); 
    if (ifRequired && value === '') { 
     return false 
    } else { 
     return 0 
    } 
    }); 
Смежные вопросы