Действие в форме - PullRequest
       1

Действие в форме

1 голос
/ 23 апреля 2011

Хорошо, у меня есть такая форма ...

<form id="form" method="post" action="http://localhost/shopper/admin/index.php?route=system/template/update&amp;token=19690a8b739af0d963f129b93b236f1d&amp;template_id=22">
....
                    <span class="delete"><a href="#" class="delete_step" rel="1">Delete Step</a></span> 
                         <tr>           
                  <td><span class="required">*</span> Template Name:</td>
                  <td><input size="100" value="real" name="name"></td>
                </tr>
                                    ....

                    <span class="delete"><a href="#" class="delete_step" rel="2">Delete Step</a></span> 
                     <tr>           
              <td><span class="required">*</span> Template Name:</td>
              <td><input size="100" value="real" name="name"></td>
            </tr>   
    ....
    </form>

И мне это нужно там, где, когда кто-то нажимает на тег привязки «delete_step», страница переходит в другое место, а не туда, куда отправляется форма, и с данными в теге rel .... Я думал что-то вроде этого подход

 $('.delete_step').live('click', function(e) {
   var delete_location = window.location.pathname.replace('admin/', '');            
   window.href = delete_location + '?route=module/delete_step&template_number=<?php print $template_id; ?>&step_id=' + $(this).attr("rel");
 });

Проблема в том, что он всегда идет в это место

  http://localhost/shopper/admin/#

Я пытался предотвращать дефолт, но потом ничего не происходит ... любые идеи

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Три вещи. Во-первых, у вас ошибка javascript, поскольку предотвращение действия по умолчанию не решило вашу проблему. Ошибка возникает при попытке ссылки на свойство href объекта window. Объект window не имеет этого свойства. Просто установите location.href = .... Во-вторых, я бы возвратил false из обработчика щелчков, так как вы, вероятно, захотите предотвратить действие по умолчанию и , чтобы предотвратить распространение клика на содержащие элементы. В-третьих, я бы не делал действие удаления, используя запрос GET. Я бы обернул его в форму сообщения (может быть и через AJAX), чтобы пользователь не мог добавить его в закладки и случайно удалить.

Вы можете подтвердить первое, посмотрев на консоль в Firefox / Firebug.

$('.delete_step').live('click', function(e) {
   var delete_location = window.location.pathname.replace('admin/', '');
   var data = 'route=module/delete_step&template_number=<?php print $template_id; ?>&step_id=' + $(this).attr("rel");
   $.post( delete_location, data, function(result) {
        // handle the result of doing the deletion
   });
});
1 голос
/ 23 апреля 2011

window.href должно быть window.location.href.Но я бы сказал, чтобы перенаправить с сервера код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...