+ Ответить в теме
Показано с 1 по 7 из 7

Тема: Трабы с jQuery

  1. #1
    Наш Чел Dron247 кто это? Аватар для Dron247
    Регистрация
    18.07.2007
    Адрес
    Братск
    Возраст
    35
    Сообщений
    298
    Поблагодарил(а)
    29
    Получено благодарностей: 37 (сообщений: 32).

    По умолчанию Трабы с jQuery

    Есть такой код
    Код:
    $('#delete').click(function() {
                    var selected = $('#ListBox1 option:selected');
                    if (confirm('Вы действительно хотите удалить страницу: ' +
                     selected.val() + ' ?')) {
                        $.get('DeletePage/' + selected.val(),
                         null, function(responce) {
                             if (responce == 'sucess') {
                                 selected.remove(); // <-------------------------[Тут ошибка!!!!]
                                 $('#ListBox1 option:last').attr('selected', 'selected');
                                 alert('Страница удалена');
                             } else {
                                 alert('Ошибка сервера: ' + responce);
                             }
                         }, 'text');
                    }
                });
    На странице есть елемент <select> в нем список страниц, находящихся в базе, юзер тычет на кнопку "Удалить" на серв уходит запрос, который послушно исполняется, и на страницу приходит подтверждение (Использую ASP.Net MVC + SqlServer2008, но это значения не имеет, на стороне сервера все просто прекрасно), и скрипт на странице должен удалить из списка выделенную запись... так вот собственно вопрос: Чего я делаю не так? В доках по jQuery где нашел, эта задача решается именно так как я делаю, но ни в одном браузере желаемый эффект не достигается

  2. #2
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    это есть?
    Код:
    $(document).ready(function(){});
    этот же пример, но без обращения к бэкэнду.
    Код HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
     <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Example</title>
        <script language="javascript" type="text/javascript" src="/js/jquery.js"></script>
        
        <script language="javascript" type="text/javascript">
    			
    		$(document).ready(function(){
     			$(".delItem").click(function delItem() {
    			
    				var selected = $('#sel option:selected');
                    if (confirm('Вы действительно хотите удалить страницу: ' + selected.val() + ' ?')) {  
    					selected.remove(); 
    					$('#sel option:last').attr('selected', 'selected');
    					alert('Удален');              
                    
    				}	                
        		});
      		});
    	</script>
        
    </head>
    <body>
    
    	<select name="sel" id="sel">
    		<option value="1">1</option>
    		<option value="2">2</option>
    		<option value="3">3</option>
    		<option value="4">4</option>
    	</select>
    
    	<a href="#" class="delItem">удалить выделенный</a>
    	
    </body>
    </html>
    Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.

  3. #3
    Наш Чел Dron247 кто это? Аватар для Dron247
    Регистрация
    18.07.2007
    Адрес
    Братск
    Возраст
    35
    Сообщений
    298
    Поблагодарил(а)
    29
    Получено благодарностей: 37 (сообщений: 32).

    По умолчанию

    Цитата Сообщение от nons Посмотреть сообщение
    это есть?
    ессно)) вот весь код страницы:
    Код HTML:
    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
    <%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    	<%=Html.Encode("Управление страницами") %>
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
        <script type="text/javascript">
            $(document).ready(function() {
    
                function GetSelInfo() {
                    $.get('GetHeaderText/' + $('#ListBox1 option:selected').val(),
                     null, function(responce) {
                         $('#header_presenter').text(responce);
                     }, 'text');
                }
                $('#id_presenter').text($('#ListBox1 option:selected').val());
                GetSelInfo();
    
                $('#ListBox1').click(function() {
                    $('#id_presenter').text($('#ListBox1 option:selected').val());
                    GetSelInfo();
                });
                //Обработка кнопок
                $('#goto').click(function() {
                    window.location = 'Page/' + $('#ListBox1 option:selected').val();
                });
                $('#add').click(function() {
                    window.location = 'Add/';
                });
                $('#delete').click(function() {
                    var selected = $('#ListBox1 option:selected');
                    if (confirm('Вы действительно хотите удалить страницу: ' +
                     selected.val() + ' ?')) {
                        $.get('DeletePage/' + selected.val(),
                         null, function(responce) {
                             if (responce == 'sucess') {
                                 selected.remove(); // <-------------------------***91;Тут ошибка!!!!***93;
                                 $('#ListBox1 option:last').attr('selected', 'selected');
                                 alert('Страница удалена');
                             } else {
                                 alert('Ошибка сервера: ' + responce);
                             }
                         }, 'text');
                    }
                });
                $('#edit').click(function() {
                    window.location = 'Edit/' + $('#ListBox1 option:selected').val();
                });
            });
        </script>
    
        <h2><%=Html.Encode("Управление страницами") %></h2>
        <table cellpadding="0" cellspacing="0" width="100%">
            <tr>
                <td>
                    <%=Html.Encode("Существующие страницы") %>               
                </td>
                <td>
                    <%=Html.Encode("Свойства") %>
                </td>
            </tr>
            <tr>
                <td>
                    <select size="25" style="width:100%" name="ListBox1" id="ListBox1">      
                    <%bool isFirst = true; %>          
                    <%foreach (var item in (IEnumerable<IntraMonsterMVC.Models.StaticPages.global_StaticPage>)Model)
                      {%>
                      <%if (isFirst)
                        { %>
                            <option selected="selected" id="<%=item.id %>">
                                <%=item.id %>
                            </option>
                      <%isFirst = false;
                        }
                        else
                        { %>
    	                    <option value="<%=item.id %>">    
    	                        <%=item.id%>         
    	                    </option>	    
    	                <%} %>            
    	            <%} %>	            
                    </select>
                    <div class="ButtonContainer">
                        <input type="button" value="<%=Html.Encode("Перейти") %>" id="goto" />
                        <input type="button" value="<%=Html.Encode("Добавить") %>" id="add" />
                        <input type="button" value="<%=Html.Encode("Удалить") %>" id="delete" />
                        <input type="button" value="<%=Html.Encode("Править") %>" id="edit" />
                    </div>
                </td>
                <td>
                    <div id="prop_pane">
                        <%=Html.Encode("Идентификатор страницы: ")%> <br />
                        <p id="id_presenter" class="BadData"></p><br />
                        <%=Html.Encode("Название страницы: ")%> <br />
                        <p id="header_presenter" class="GoodData"></p><br />
                    </div>
                </td>
            </tr>
        </table>
    &nbsp;
    
    </asp:Content>
    Блин, асп криво подсвечивает

  4. #4
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    Выше привел пример работающей функции, нужной тебе. Проверяй) ASP сейчас посмотреть не смогу, к сожалению. Проверь также правильность DOM-модели страницы.
    Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.

  5. #5
    Наш Чел Dron247 кто это? Аватар для Dron247
    Регистрация
    18.07.2007
    Адрес
    Братск
    Возраст
    35
    Сообщений
    298
    Поблагодарил(а)
    29
    Получено благодарностей: 37 (сообщений: 32).

    По умолчанию

    Цитата Сообщение от nons Посмотреть сообщение
    Выше привел пример работающей функции, нужной тебе. Проверяй) ASP сейчас посмотреть не смогу, к сожалению. Проверь также правильность DOM-модели страницы.
    У меня и твой вариант не работает Юзаю jquery-1.3.2-vsdoc.js ща на разных вариантах попробую, а будь DOM кривым, думаю уже селекторы бы моск съели, а из всего скрипта не работает только одна подлая строчка)

    Добавлено через 14 минут
    Нет ну ты прикинь! Код правильный у меня - это файл jquery-1.3.2-vsdoc.js кривой! Заменил на jquery-1.3.2.js и все заработало!
    Последний раз редактировалось Dron247; 10.07.2009 в 12:09. Причина: Добавлено сообщение

  6. #6
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    ну, главное разобрались :):)
    Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.

  7. #7
    Новичок SeemaN_tm кто это?
    Регистрация
    04.06.2013
    Возраст
    36
    Сообщений
    41
    Поблагодарил(а)
    2
    Получено благодарностей: 4 (сообщений: 2).

    По умолчанию

    Прошу показать, какой внешний вид должен иметь нижеприведённый код. Чтоб скрипт перед добавлением записи в тело документа, отправил имеющиеся данные серверу, а ответ сервера уже добавлял в тело документа.

    Код HTML:
    <script type="text/javascript"><!--
    document.write( '<a href="http://www.liveinternet.ru/click" '+
            'target=_blank><img src="http://counter.yadro.ru/hit?t26.6;r'+
            escape(document.referrer)+((typeof(screen)=='undefined')?'':
            ';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?
            screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+
            ';'+Math.random()+
            '" alt="" title="LiveInternet: показано число посетителей за сегодня" '+
            'border=0 width=88 height=15><\/a>')
    //--></script>
    Пробовал отправлять вот так:
    Код HTML:
    <html>
    <head>
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    </head>
    <body>
    <script type="text/javascript">
        function GetEdit(data){
                    return $.ajax({url:     "/index.php",
                        type:       'POST',
                        dataType:   "text",
                        data:       data,
                        success:    function(msg){alert('Ответ сервера получен.');},
                        error:      function(msg){alert('Ошибка получения данных.');}
                        }).data;
                    }
    </script>
     
     
    <script type="text/javascript"><!--
    document.write(GetEdit('<a href="http://www.liveinternet.ru/click" '+
            'target=_blank><img src="http://counter.yadro.ru/hit?t26.6;r'+
            escape(document.referrer)+((typeof(screen)=='undefined')?'':
            ';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?
            screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+
            ';'+Math.random()+
            '" alt="" title="LiveInternet: показано число посетителей за сегодня" '+
            'border=0 width=88 height=15><\/a>'));
    //--></script>
     
    </body>
    </html>
    И всё равно не выходит.
    Но не смотря на то, что сервер получает данные и отправляет ответ, получит их не получается, так как постоянно срабатывает событие "error".

    Всё. Вопрос решил.
    Вся загвоздка была в политике безопасности ajax, которая запрещает скрипту под одним доменом, обмениваться данными с другими доменами.
    Последний раз редактировалось SeemaN_tm; 17.01.2015 в 14:53.

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru
Администрация сайта не выражает согласия
с высказыванием участников форума и не несет
ответственности за их содержание.

Копирование любого материала возможно только
при наличии ссылки на сайт.