2014-02-14 2 views
0

Я создал пользовательский тег, и теперь я пытаюсь получить значение настраиваемого атрибута, я пробовал много способов, и по какой-то причине предупреждение возвращает undefind ... Спасибо, ребята.custom tag select .attr возвращает undefined

<goladmin:select cssClass="shortSelect" 
      path="textType" 
      items="${textTypeList}" 
      itemValue="id" 
      itemLabel="description" 
      widgetType="widget"        
      onchange="true"             
      multiple="false" /> 

JavaScript

<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 

    //call to get the widget type 
    getWidgetType();  

    //On select dropdown change 
    $('#textType').change(function(){ 

     var wt = $('#textType').val(); 
     alert("widgetType=" + wt); 


     //call to get the widget type 
     //getWidgetType(); 
    }); 
}); 


function getWidgetType(){ 

    var value = $('#textType').val(); 
    //set hidden textTypeWidget to the selected widget 
    $('#textTypeWidget').val(value); 

    //get the widget type value from the hidden field 
    var widgetType = $('#textTypeWidget').val(); 

    // show and hide the editor based on the widget type 
    if(widgetType == "CKEDITOR") {    
     $('#ckEditorEditor').show(); 
     $('#textAreaEditor').hide(); 

    }else{ 
     $('#ckEditorEditor').hide(); 
     $('#textAreaEditor').show(); 
    } 

} 

генерируется HTML

<select id="textType" name="textType" class="shortSelect" onchange="true"><option value="1" selected="selected"></option><option value="2">button label</option><option value="3">title</option><option value="4">error message</option><option value="5">link text</option><option value="6">url</option><option value="7">label</option><option value="8">text</option><option value="9">table title</option><option value="10">help text</option><option value="11">question text</option><option value="12">answer text</option><option value="13">question help text</option><option value="14">glossary</option><option value="15">information mesage</option><option value="16">confirmation message</option><option value="17">system message</option></select> 

Сгенерированный HTML при установке ItemValue к виджету ....

<select id="textType" name="textType" class="shortSelect" onchange="true"><option value="TEXTAREA" selected="selected"></option><option value="TEXTAREA">button label</option><option value="CKEDITOR">title</option><option value="TEXTAREA">error message</option><option value="TEXTAREA">link text</option><option value="TEXTAREA">url</option><option value="TEXTAREA">label</option><option value="TEXTAREA">text</option><option value="TEXTAREA">table title</option><option value="CKEDITOR">help text</option><option value="CKEDITOR">question text</option><option value="CKEDITOR">answer text</option><option value="TEXTAREA">question help text</option><option value="CKEDITOR">glossary</option><option value="CKEDITOR">information mesage</option><option value="CKEDITOR">confirmation message</option><option value="CKEDITOR">system message</option></select> 
+0

вы можете поделиться сгенерированный html? –

+0

Извините, я не понимаю, кто или что такое #textTypeWidget? –

+0

textTypeWidget будет типом редактора, который я буду показывать пользователю на основе textType ... Я знаю, в чем моя проблема, мне нужно добавить новый атрибут к пользовательскому тегу для textTypeWidget, чтобы я мог сделать это . Генерирование HTML должно в основном выглядеть следующим образом: Korda

ответ

0

Попробуйте использовать:

var wt = $('.shortSelect').attr('widgetType'); 

вместо:

var wt = $('#textType').attr('widgetType'); 
+0

попробовал оба и все равно получить undefined :( – Korda

+0

@Korda Сгенерированный HTML-код не имеет виджета widgetType = "'?? – Felix

+0

Yah и я не уверен, почему :(LOL не удивительно, что он возвращался undefined :(Я сделал var wt = $ ('# textType'). Val(), и я получаю значение ... и если я измените itemValue на виджет, я получаю вид виджетов ... не уверен, что сейчас происходит сейчас. – Korda

0

приглашение '#' является селектор ID, вам необходимо установить идентификатор в вашем элементе:

<goladmin:select 
     id="textType" 
     cssClass="shortSelect" 
     path="textType" 
     items="${textTypeList}" 
     itemValue="id" 
     itemLabel="description" 
     widgetType="widget"        
     onchange="true"             
     multiple="false" /> 

var wt = $('#textType').attr('widgetType'); 
alert("widgetType=" + wt); 
+0

umm howcome $ ('# textType') .change (function() {works w без идентификатора? Я попытался добавить идентификатор и все тот же :( – Korda

+0

oO, вы уверены? Rsrs – brunozrk

+0

LOL доверяйте мне, у меня есть предупреждение («изменение»), и каждый раз я изменяю раскрывающееся меню, я получаю это предупреждение :) – Korda