表格内的行动

时间:2011-04-22 21:02:51

标签: javascript jquery forms

好的,我有一个这样的表格......

<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/#

我试过preventDefault但是没有任何反应......任何想法

2 个答案:

答案 0 :(得分:2)

三件事。首先,您有一个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 :(得分:1)

window.href应为window.location.href。但我会说要从服务器代码重定向。