2016-11-25 2 views
1

Я борюсь с изменением кода, который у меня есть, который динамически создает поле выбора на основе значений столбцов из списка sharepoint.Динамическое создание класса выбора

в данный момент код:

function getAjaxFilter(name, internalName) { 
$.ajax({ 
    url: $().SPServices.SPGetCurrentSite() + '/_layouts/filter.aspx?ListId=' + listID + '&FieldInternalName=' + internalName + '&ViewId=' + viewID + '&FilterOnly=1&Filter=1' + filterFieldsParams, 
    success: function(data) { 

     $('#filterField' + internalName).html(name).append($("<div></div>").append(data).find("select")); 
     //clear current onChange event 
     $("#diidFilter" + internalName).attr("onchange", ''); 
     // add change event 
     $("#diidFilter" + internalName).change(function() { 
      FilterField(viewID, internalName, encodeURIComponent(this.options[this.selectedIndex].value), this.selectedIndex); 
     }); 
    } 

Создает следующий HTML:

<div id="filterFieldSub_Category"> 
Sub Category 
<select title="Filter by Sub_Category" id="diidFilterSub_Category"> 
    <option>(All)</option> 
    <option>(Empty)</option> 
    <option value="Test">Test</option> 
</select> 

То, что я пытаюсь достичь, чтобы получить его, чтобы произвести отборный класс так Я могу применить его к стороннему стилю выбора selectbox, например bootstrap select. поэтому он должен выглядеть следующим образом:

<select class="selectpicker" id= "filterFieldSub_Category"> 
<option>(all)</option> 
<option>(empty)</option> 
<option>test</option> 
</select> 

Я не уверен, с чего начать, так что если кто-то может мне точку в правильном направлении, которое будет огромная помощь :)

+0

вы можете добавить под '$ (" # diidFilter "+ internalName) .attr (" onchange ", '');' нечто вроде '$ (" # diidFilter "+ internalName) .removeAttr (" value ");' , [вы можете прочитать еще кое-что о .removeAttr() здесь.] (https://api.jquery.com/removeAttr/), чтобы начать, но вы можете захотеть создать способ создания элемента DOM из данные приносят с вызовом ajax ... Можете ли вы опубликовать данные, полученные им, чтобы мы могли видеть, как это организовано. –

ответ

0

Вы можете добавить класс используя addClass():

$("#diidFilter" + internalName).addClass('selectpicker'); 

Надеюсь, это поможет.

+1

Это действительно полезно спасибо! все еще не работает совершенно правильно, но я определенно приближаюсь :) Редактировать! на самом деле - сейчас работайте. Еще раз спасибо! – RScott

Смежные вопросы