проверка jQuery с отправляет обработчик

Если вам приходится работать с файлами, поступающими из Excel, с символами новой строки в ячейках, есть и решение.

Большим недостатком этого способа является то, что точки с запятой или двойные кавычки в строках не допускаются.

Я предпочитаю идти без точек с запятой

if file.respond_to?(:read)
  csv_contents = file.read
elsif file_data.respond_to?(:path)
  csv_contents = File.read(file.path)
else
  logger.error "Bad file_data: #{file_data.class.name}: #{file_data.inspect}"
  return false
end

result = "string"
csv_contents = csv_contents.force_encoding("iso-8859-1").encode('utf-8') # In my case the files are latin 1...

# Here is the important part (Remove all newlines between quotes):
while !result.nil?
  result = csv_contents.sub!(/(\"[^\;]*)[\n\r]([^\;]*\")/){$1 + ", " + $2}
end

CSV.parse(csv_contents, headers: false, :row_sep => :auto, col_sep: ";") do |row|
  # do whatever
end

Для меня решение отлично работает, если вы имеете дело с большими файлами, у вас могут возникнуть проблемы с ним.

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

11
задан 2 August 2009 в 08:18
поделиться

2 ответа

Попробуйте

$(document).ready(function() {
    $("#form1").submit(function() {
        $("#txt1").val("123456");

        $("#form1").validate({
            rules: {
                    txt1: {
                            maxlength: 5
                    }
            }
        });
    });
});

Таким образом, ваш обработчик событий отправки будет запускать проверку.

2
ответ дан 3 December 2019 в 10:04
поделиться

Вы можете использовать обратный вызов beforeSubmit для установки значений:

$(function() {
    $('#form1').validate({
        rules: {
            txt1: { maxlength: 5 }
        },
        beforeSubmit: function(arr, $form, options) {
            $('#txt1').val('123456');
            return true;
        }
    });
});
8
ответ дан 3 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: