JQuery Dynamic Select Spring Bind - PullRequest
       2

JQuery Dynamic Select Spring Bind

0 голосов
/ 27 мая 2011

У меня есть проблема, когда я должен динамически генерировать выпадающие списки, используя jquery и привязку к ним Spring. У меня есть список в моем объекте поддержки, и я пытаюсь связать его с помощью счетчика, который увеличивается.

Я получаю следующую ошибку:

org.springframework.beans.InvalidPropertyException: недопустимое свойство 'selectedPermntRestrictCat [+ categoryCounter +]' класса бина [com.portal.policymanagement.formObject.EditPolicyFormObject]: недопустимый индекс в пути свойства 'selectedCerctat Вложенное исключение: java.lang.NumberFormatException: для входной строки: "+ categoryCounter +"

$(document).ready(function(){
    var categoryCounter=0;
    $('#addCategory').click(function() {
        $('<div class="holder"><div class="left"><label> </label><form:select path="policy.selectedPermntRestrictCat[' + categoryCounter + ']"><form:option value="0" label="Select" /><form:option value="6" label="Entertainment" /><form:option value="7" label="Religion" /><form:option value="8" label="Weapons" /><form:option value="9" label="Virtual Community" /><form:option value="10" label="Hacking" /><form:option value="11" label="Search Engines" /><form:option value="12" label="Educational" /><form:option value="13" label="Other" /><form:option value="14" label="TEST NON_EXISTANT" /><form:option value="1" label="Violence" /><form:option value="2" label="Drugs" /><form:option value="3" label="Adult Content" /><form:option value="4" label="Online Resources" /><form:option value="5" label="Gambling" /></form:select></div><div class="right"><a id="'+i+'" class="but_default" href="#">Delete</a></div><div class="errors left"></div><div class="clear"></div></div>').fadeIn('slow').appendTo('.blockedCategories');
        categoryCounter++;
    });
});

1 Ответ

1 голос
/ 27 мая 2011

Этот код не имеет смысла, потому что вы смешиваете логику на стороне сервера (теги Spring) с логикой на стороне клиента (jQuery).Ошибка, которую вы видите, вызвана тем, что <form:select>, являющийся серверным тегом, выполняется внутри литерала Javascript во время рендеринга страницы.

Чтобы решить вашу задачу, вам нужно взглянуть на HTMLгенерируется вашим <form:select> во время обычного рендеринга страницы и создает аналогичный HTML с вашим кодом jQuery, это будет примерно так:

$('<div class="holder"><div class="left"><label> </label><select name="policy.selectedPermntRestrictCat[' + categoryCounter + ']"><option value="0" label="Select" />...</select>...').fadeIn('slow').appendTo('.blockedCategories');  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...