2010-10-13 36 views
6

Tôi có chế độ xem ASP.NET MVC với biểu mẫu Beginform, chỉ định hành động và bộ điều khiển để nhấn vào gửi. Nhưng khi gửi tôi muốn gọi một dịch vụ bằng cách sử dụng jQuery để lấy một số dữ liệu và sau đó gửi các dữ liệu đó với biểu mẫu.JavaScript hoạt động trước khi gửi mẫu ASP.NET MVC

Hiện tại tôi có nút gửi trên biểu mẫu nơi sự kiện onclick của nút gọi phương thức JavaScript. Tùy thuộc vào kết quả tôi nhận được từ phương pháp tôi muốn biểu mẫu được gửi đến hành động được chỉ định.

Bây giờ tôi không thể làm việc này. Có đúng cách để làm điều này hoặc tôi nên thay vì làm cho một bài viết bằng cách sử dụng jQuery? Tôi nghĩ rằng nó sẽ được tốt đẹp để sử dụng những gì tôi đã chỉ định như hành động/điều khiển trong các hình thức.

Trả lời

11

Tôi nghĩ cách tốt nhất là sử dụng sự kiện 'gửi' trên biểu mẫu, vì người dùng có thể muốn gửi biểu mẫu bằng cách nhấn Enter trong một số trường. Đoán, có thể thay đổi một số giá trị đầu vào trong sự kiện này,

jQuery('form#myform').submit(function(e){ 
    //.... 
    if (somevar == false) 
    { 
     // stop submitting form 
     e.preventDefault(); 
    } 
    else 
    { 
     jQuery('input#hiddeninput').val('somevalue'); 
    } 
}) 
+0

câu trả lời tuyệt vời, nhưng không chính xác những gì tôi muốn làm. Tôi muốn bắt đầu một yêu cầu ajax cho một số dữ liệu, và chỉ trên respons gửi/chuyển hướng biểu mẫu. Sử dụng ví dụ trên sẽ dẫn đến yêu cầu không hoàn thành trước khi biểu mẫu được gửi. –

0

Tôi nghĩ sẽ tốt hơn khi thực hiện truy vấn dịch vụ web bên ngoài trong hành động điều khiển. Bằng cách này, bạn sẽ luôn gửi biểu mẫu đến cùng một hành động điều khiển sẽ truy vấn dịch vụ và dựa trên kết quả sẽ hiển thị chế độ xem hoặc chuyển hướng đến một số hành động khác.

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