Я хотел бы использовать от HTML5 для браузеров, которые поддерживают его и ухудшаются к a
если нет. Я использую Ruby on Rails, таким образом приводя все остальное к сбою, я мог сделать что-то вроде этого на серверной стороне.
Я предпочел бы, тем не менее, иметь что-то больше встроенное с идеей прогрессивного улучшения, сделанного с помощью JavaScript. Бонусные очки, если это - JQuery.
Это программа bl2seq
от BioPerl ? Если да, то это не похоже на то, что вы можете сделать с ним трубопровод. Вы можете, однако, кодировать свой собственный взлом с помощью Bio:: Tools:: Run:: AnalyityFactory:: Pise
, который является рекомендуемым способом для этого. Вы должны сделать это в Perl
, хотя.
Если это другое bl2seq
, игнорируйте сообщение. В любом случае, вы, вероятно, должны предоставить более подробную информацию.
Вот простой код, но он предполагает, что значения в a и b всегда положительные.
int[] a = { 1, 201, 354 };
int[] b = { 404, 201, 354 };
int[] c = { -1, -1, -1, -1};
for(int i = 0; i < 3; i++){
int notfound = 1;
for(int j = 0; j < 3; j++){
if(b[j] == -1) continue;
if(a[i] == b[j]){
b[j] = -1;
if(c[1] == -1)
c[1] = a[i];
else
c[2] = a[i];
notfound = 0;
break;
}
}
if(notfound)
c[0] = a[i];
}
int k = 0;
while(b[k++] == -1);
c[3] = b[k];
Я не тестировал его, но, надеюсь, вы получите идею. Это использует очень мало дополнительного пространства (только пространство для notfound, которое можно сделать логическим, и переменные индекса) и должно быть довольно быстрым.
-121--3926380-Проверьте Modernizr и сообщите, поддерживается ли диапазон. Я считаю, что метод состоит в том, чтобы создать диапазон ввода и проверить его тип - если он все еще "диапазон", то он поддерживается. В противном случае он должен сообщить "текст", который является резервным в других браузерах.
Сначала определите, может ли браузер обрабатывать HTML 5, а затем используйте что-то вроде этого:
$('input').each(function (i, item) {
if ($(item).attr('min') !== undefined && $(item).attr('max') !== undefined) {
var select = document.createElement("SELECT");
$(select).attr('name', $(item).attr('name'));
$(select).attr('id', $(item).attr('id'));
$(select).attr('disabled', $(item).attr('disabled'));
var step = 1;
if ($(item).attr('step') !== undefined) {
step = parseFloat($(item).attr('step'));
}
var min = parseFloat($(item).attr('min'));
var max = parseFloat($(item).attr('max'));
var selectedValue = $(item).attr('value');
for (var x = min; x <= max; x = x + step) {
var option = document.createElement("OPTION");
$(option).text(x).val(x);
if (x == selectedValue) { $(option).attr('selected', 'selected'); }
$(select).append(option);
};
$(item).after(select);
$(item).remove();
}
});
Поскольку вы не можете использовать селектор input [type = range]
мне пришлось использовать подход $ (item) .attr ('min') && $ (item) .attr ('min')
, это даст немного странно, если у вас есть другие типы элементов управления вводом с этими двумя атрибутами.