2017-02-22 13 views
0

В моем текущем весеннем проекте, у меня есть представление с этой HTML форме:форма представляется без включать его поля

<form role="form" class="form" id="form" method="post" action="/loja/idiomas/set" enctype="multipart/form-data"> 
<table> 
    <tr> 
    <td> 
     <select class="form-control" id="left" multiple="multiple" size="20">...</select> 
    </td> 
    <td> 
     <button class="btn btn-default" id="btn_left">&lt;&lt;</button> 
     <br /> 
     <button class="btn btn-default" id="btn_right">&gt;&gt;</button> 
    </td> 
    <td> 
     <select class="form-control" id="right" name="listaDeIdiomas" multiple="multiple" size="20"></select> 
    </td> 
    </tr> 
</table> 
</form> 

, который он, представленный этим Jquery код:

$(document).ready(function() { 
    $('.summernote').summernote({height: 360, minHeight: null, maxHeight: null}); 

    $('#submit').on('click', function(){ 
    var $form = $('form.form'), url = $form.attr("action"); 
    var posting = $.post(url, $form.serialize()); 
    posting.done(function(data){ 
     if(data == "") { 
     $("#alerta_sucesso").css("display", "block"); 
     } else { 
     $("#alerta_erro").find("#texto").text(data); 
     $("#alerta_erro").css("display", "block"); 
     } 
    }); 
    }); 
}); 

Изначально выберите #left заполняется данными, которые пользователь может отправить на выбор #right. Я проверил, это действительно работает (и опция, которую он поместил в правильно выбрать #right).

Но когда я отправляю форму, никакие данные не отправляются на сервер - я проверяю с помощью инструментов разработчика браузера, и никакие параметры не пересылаются.

Кто-нибудь может понять, что здесь не так? Код jquery работает с другими формами, кроме этого.

+0

Я не вижу ни одной кнопки с id "submit". Вы ссылаетесь на $ ('# submit') в коде JQuery, где находится элемент с идентификатором? –

+0

Где ваша кнопка отправки? –

+0

@AnkitVadi @SagarV кнопка размещена на месте тега формы, и на ней ссылается идентификатор '# submit' (он снаружи, потому что тег формы - это созданный мной пользовательский тег, использующий thymeleaf). –

ответ

0

Оказывается, элементы из второго выберите быть отправлен только на сервер, если они были выбраны. Я могу выбрать их автоматически с помощью этого кода:

$(document).ready(function() { 
$('#btn_left').click(function() { 
    return !$('#left option:selected').remove().appendTo('#right'); 
}); 
$('#btn_right').click(function() { 
    return !$('#right option:selected').remove().appendTo('#left'); 
}); 
}); 
0

Вы пытаетесь получить функцию click для элемента с идентификатором «submit». Попробуйте использовать что-то вроде

$("#target").submit(function(event) { 
    alert("Handler for .submit() called."); 
    event.preventDefault(); 
}); 

где «цель» является идентификатором для вашей кнопки

+0

id '# submit' для кнопки, которая запускает действие (оно помещено вне тега формы, потому что этот тег является специальным тегом, который я создал с тимелеафом). –

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

  • Нет связанных вопросов^_^