2013-02-26 2 views
0

я иметь эту функциюфункция Jquery одиночные кавычки игнорируются

function getTextfieldonly(fieldName, id) { 
     var option = jQuery('#'+fieldName+'_textfield').val(); 
     if (option != "") { 
     $('.'+fieldName+'_ul').append('<li class="'+fieldName+'_item">'+option+'<span onclick="removeSelected($(this),'+fieldName+')" class="reLef buttonleistungspktr '+fieldName+'_button2"></span></li>'); 
     $('#'+fieldName+'_list').prepend('<option selected="selected" value="'+option+'">'+option+'</option>'); 
     }else {return false} 
    }; 

в строке-i присоединени Ли с пролетом внутри

.append('<li class="'+fieldName+'_item">'+option+'<span onclick="removeSelected($(this),'+fieldName+')" class="reLef buttonleistungspktr '+fieldName+'_button2"></span></li>'); 

если параметр FIELDNAME является, например, «Foo»

Я хочу OnClick в приложенном пролете выглядеть

onclick="removeSelected($(this),'foo')" 

но подмигнули оказывается как

onclick="removeSelected($(this),foo)" 

Так откуда же singlequotes идти? Мне нужно, чтобы они были там, и я не могу понять, как это сделать.

У кого-нибудь есть идея? спасибо заранее

+1

Лучшей альтернативой было бы связать обработчик с JQuery вместо того, чтобы использовать встроенный событие обработчики. * где были сделаны одиночные кавычки *: никогда не было одиночных кавычек. В '[...], '+ fieldName +')" [...] ', одинарные кавычки обозначают строковые литералы, которые вы добавляете и добавляете к' fieldName'. –

+1

Вам следует избегать написания встроенного javascript. Это ужасная безопасность Проблема настолько плоха, что методы начинают добавляться, чтобы заставить браузер отклонить его. http://www.w3.org/TR/CSP/ – fmsf

+0

спасибо за ваши советы, другим способом решения этого было обновление div с элементами с ajax и бит кода контроллера, а внутри div - готовая функция с щелчком (function() {eventhandlinghere}) –

ответ

1

Изменить этот

<span onclick="removeSelected($(this),'+fieldName+')" 

в

<span onclick="removeSelected($(this),\''+fieldName+'\')" 

Вам нужно бежать одинарные кавычки

+0

да, это было быстро и правильно: D –

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