Как клонировать, выбрать и установить выбранную опцию и передать ее обратно в виде строки. (делает как часть пользовательского форматера jqgrid) - PullRequest
0 голосов
/ 23 марта 2011

Я использую пользовательский форматер для столбца в jqgrid.

Код:

function getCellContentForFormula(cellValue, opts, rowObject) { 
var splitResult = "FHLMC 30 YR";
var selectId = opts.colModel.name + ':' + rowObject.coupon+ ':' + 'substituteSelect';
    //      var $selectBnchmark = $('#productSelect').clone().attr("id",selectId).val(splitResult);
var $selectBnchmark = $('#productSelect').clone().attr("id", selectId);
$('#'+selectId+ ' option[value='+splitResult+']').attr('selected', 'selected');
var bnchMarkSelect = $('<span>').append($selectBnchmark).remove().html();
console.log(bnchMarkSelect);
return '<br/>'+ bnchMarkSelect;
    }

Приведенный выше код правильно создает раскрывающийся список с параметрами, но не показывает выбранное значение.

Вывод Console.log:

 <select id="valueOfCMPlusTwo:5:substituteSelect" class="prodSelect"> <option  value="">-Select-</option><option value="FHLMC 15 YR">FHLMC 15 YR</option><option value="FHLMC 30 YR">FHLMC 30 YR</option></select>

У меня проблемы с объединением строк 3 и 4, мне нужен вывод:

<select id="valueOfCMPlusTwo:5:substituteSelect" class="prodSelect"> <option value="">-Select-</option><option value="FHLMC 15 YR">FHLMC 15 YR</option><option value="FHLMC 30 YR" selected="selected">FHLMC 30 YR</option></select>

Пожалуйста, помогите.

1 Ответ

1 голос
/ 23 марта 2011

Если вы работаете с пользовательским форматером, вы должны просто работать со строками, а не использовать и jQuery операцию.Например, если у вас есть HTML-фрагмент, представленный <select>, имеющий "blabla" в качестве "id" и вы хотите установить новый id, вы можете просто использовать метод replace .Таким же образом вы можете переписать свой пользовательский форматер.

Ваш текущий код работает намного медленнее.Вы должны понимать, что каждая $("#myid") операция тем медленнее, чем больше элементов с идентификатором у вас на странице.Кроме того, вы используете jQuery.clone , в котором не исправлены ошибки.Поэтому я настоятельно рекомендую вам упростить код вашего пользовательского форматера и использовать только строковые или RegExp операции внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...