2015-11-09 4 views
0

Когда пользователь нажимает на имя другого, появится всплывающее окно с формой для отправки сообщения этому пользователю. Я хочу иметь возможность изменять атрибут «действие», чтобы отразить «http://localhost:8000/newMsg/» + user_id; То, что я до сих пор меняет действие формы, но также меняет и другие формы. Я знаю, что могу использовать $ (это) в определенных ситуациях или children() или ближайший(). Но мне нужно передать значение user_id из .chat_list в конкретную форму. Вот что у меня есть:Атрибут атрибута JQuery при добавленном элементе

HTML

  <!-- Sidebar --> 
     <div id="sidebar-wrapper"> 
          <div class = "contacts_slideout"> 
           <div class = "contact_content"> 
            <div id = "chat-box"> 
             <div class = "menteeList"> 

              <div id = "mntList"> 
               <ul class = "sidebar-nav"> 
                <li><h1>My Mentee</h1></li> 
                @foreach($menteeList as $mentee) 
                 <li class = "chat_list" value = "{{$mentee->id}}"><div class = "pic_id"></div><a>{{$mentee->name}}</a></li> 
                @endforeach 
               </ul> 
              </div> 
             </div> 
            </div> 
           </div> 

          </div> 
     </div> 
     <!-- /#sidebar-wrapper --> 
     <div class = "dock"> 
      <div class = "docking_tabs"> 

      </div> 
     </div> 

Javascript

$('.chat_list').click(function(){ 
    if($(this).hasClass('activated')){ 
     return false; 
    } else { 
     var user_id = $(this).attr('value'); 
     $(this).addClass('activated'); 
     var el = $(
      '<div class = "message_block">'+ 
       '<div class = "message_tab">'+ '</div>' + 

       '<div class = "message_flyout">' + 
        '<div class = "message_content">' + 
         '<div class = "message_header">'+ '</div>' + 
          '<div class = "conversation_scroll">' + 
           '<div class = "scroll_content">' + '</div>' + '</div>' + 
            '<div class = "message_form">' + 
             "<form class = 'myForm' method= 'POST' accept-charset= 'UTF-8'>" + "<input name='_token' type='hidden' value='2rS54FJZJZhWPplLmBJSH4CsID7Pgec7iPsDtrnm'>" + 
             '<div class = "message_form">' + 
              "<input class='input-mini' placeholder='Type a message...' name='status' type='text'>" + 
             '</div>'+ 
             "</form>" + 
            '</div>'+ 
           '</div>'+ 
          '</div>'+ 
        '</div>'); 

     $('.docking_tabs').append(el); 
     $(".myForm").attr('action', 'http://localhost:8000/newMsg/' + user_id); 
    } 

}); 

Как я могу сделать это правильно? Вопрос только в том, будет ли этот метод уязвимым для манипуляций или взлома?

+0

Для обеспечения безопасности вам необходимо убедиться, что данные из почтовый контент подвергается дезинфекции. –

+1

и какова связь между .chat_list, .docking_tabs и .myForm ?? .. вам нужно предоставить html .. и я подумал .. почему вам нужно установить действие для формы после добавления, когда вы можете установить действие

+0

Mybad i был в спешке –

ответ

1

Изменить

<form

к:

<form action='"+user_id+"'

И удалить последнюю строку, которая изменяет действие атрибута формы