2013-06-06 27 views
27

Tôi muốn thay đổi url biểu mẫu được gửi đến khi nhấp vào như được thấy bên dưới. Dưới đây là những gì tôi đã thử nhưng nó không hoạt động.url thay đổi jquery của biểu mẫu gửi

<form action="" method="post" class="form-horizontal" id="contactsForm" enctype="multipart/form-data"> 
    <div class="widget-content"> 

    <div class="btn-group"> 
     <button data-toggle="dropdown" class="btn dropdown-toggle"> &nbsp; 
     <span class="icon-folder-open icon-large"></span> 
     Move To <span class="caret"></span> 
     </button> 
     <ul class="dropdown-menu"> 
     {% for x,y in actionsForm.fields.move_to.choices %} 
     <li><a class="move_to" id="{{ x }}" href="#">{{ y }}</a></li> 
     {% endfor %} 

<script> 
    $(document).ready(function() { 
     $(".move_to").on("click", function() { 
      $('#contactsFrom').attr('action', "/test1"); 
      $("#contactsFrom").submit(); 
      e.preventDefault(); 
     }); 
    }); 
</script> 
+1

gì là vấn đề mà bạn đang phải đối mặt? – pvnarula

+1

BTW. Bạn có lỗi đánh máy trong ID của mình: #contactsTừ - tôi lấy nó có nghĩa là #contactsForm –

+0

cũng được phát hiện. cảm ơn – GrantU

Trả lời

57

Hãy thử sử dụng này:

$(".move_to").on("click", function(e){ 
    e.preventDefault(); 
    $('#contactsForm').attr('action', "/test1").submit(); 
}); 

Di chuyển thứ tự mà bạn sử dụng .preventDefault() có thể khắc phục sự cố. Bạn cũng không sử dụng function(e) vì vậy e.preventDefault(); không hoạt động.

Tại đây hoạt động: http://jsfiddle.net/TfTwe/1/ - trước hết, hãy nhấp vào 'Kiểm tra thuộc tính hành động'. liên kết. Bạn sẽ nhận được thông báo cho biết undefined. Sau đó nhấp vào 'Đặt thuộc tính hành động'. và nhấp vào 'Kiểm tra thuộc tính hành động'. lần nữa. Bạn sẽ thấy rằng thuộc tính hành động của biểu mẫu đã được đặt chính xác thành /test1.

+1

Tôi thấy, 'e' hiện đã được chuyển nhưng hiện tại dường như không chạy chút nào, không có lỗi. ngăn chặnDefault chỉ dừng mọi thứ? – GrantU

+0

Tôi thấy, xin lỗi đó là một loại o – GrantU

0

Gửi dữ liệu từ dạng:

$("#change_section_type").live "change", -> url = $(this).attr("data-url") postData = $(this).parents("#contract_setting_form").serializeArray() $.ajax type: "PUT" url: url dataType: "script" data: postData

Các vấn đề liên quan