2013-06-13 47 views
7

Tôi đang trong quá trình chuyển đổi một trang web hiện có để sử dụng khung MVC và Entity.Thẻ neo dưới dạng nút gửi?

Bố cục/kiểu dáng được cho là giống nhau và để tuân theo hướng dẫn đó, tôi cần gửi biểu mẫu đăng nhập của mình bằng cách sử dụng thẻ <a> vì thẻ có hình ảnh tùy chỉnh cho nút.

Dưới đây là hình thức của tôi:

@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { id = "login", action = "Login" })) 
{ 
    <label> 
     <span>Username 
     </span> 
     <input type="text" name="UserName" id="UserName" class="input-text required" /> 
    </label> 
    <label> 
     <span>Password 
     </span> 
     <input type="password" name="Password" id="Password" class="input-text required" /> 
    </label> 
    <label> 
     <input type="checkbox" name="RememberMe" id="RememberMe" class="check-box" /> 
     <span class="checkboxlabel">Remember Me</span> 
    </label> 
    <div class="spacer"> 
     <a href="javascript:void(0)" onclick="login();" class="login-button"></a> 
    </div> 
} 

Như bạn có thể thấy, <a> thẻ trước đây là gửi thông tin đăng nhập sử dụng javascript. Đây không phải là những gì tôi đang tìm kiếm để đạt được.

Làm cách nào để thay đổi thẻ đó để gửi biểu mẫu của tôi cho hành động điều khiển của tôi?

+0

Thông số của bạn có nêu rõ bạn không thể thay đổi thẻ neo thành thẻ nút không? Bởi vì tôi có nghĩa là, các nút cho phép hình ảnh, quá. Nó có lẽ sẽ là một tinh chỉnh nhỏ cho css thay vì cần sử dụng javascript để gửi một biểu mẫu. – rossisdead

+0

@rossisdead Nó chỉ cần giống như trước đây. Tôi đã thử sử dụng một nút với một hình ảnh, nhưng nó trông như vậy. Khi được nhấp, hình ảnh sẽ chìm vào trang và đó không phải là cách nút được thiết kế để xem. Tôi sẽ cần một nút xuất hiện CHỈ là hình ảnh của tôi và KHÔNG có hoạt ảnh khi được nhấp. – Kehlan

Trả lời

8

Tôi đã thực hiện

HTML

<form action="test.aspx" type="POST"> 
    <label> 
     <span>Username</span> 
     <input type="text" name="UserName" id="UserName" class="input-text required" /> 
    </label> 
    <label> 
     <span>Password</span> 
     <input type="password" name="Password" id="Password" class="input-text required" /> 
    </label> 
    <label> 
     <input type="checkbox" name="RememberMe" id="RememberMe" class="check-box" /> 
     <span class="checkboxlabel">Remember Me</span> 
    </label> 
    <div class="spacer"> 
     <a href="javascript:void(0)" class="login-button">Login</a> 
    </div> 
</form> 

jquery

$(document).ready(function(){ 
    $(document).on("click",".login-button",function(){ 
    var form = $(this).closest("form"); 
    //console.log(form); 
    form.submit(); 
    }); 
}); 

JSFiddle

+0

Tôi đã kết thúc tạo kiểu nút riêng cho dự án cụ thể này, nhưng đây vẫn là cách tốt nhất để đi. Cảm ơn. – Kehlan

3

Thông thường bạn không muốn đặt nhiều javascript bên trong các thẻ html, nhưng nếu điều này chỉ xảy ra một lần trong giải pháp của bạn thì nó sẽ ổn. Tuy nhiên, nếu có các thẻ neo trên tất cả các nhu cầu đăng bài bằng cách sử dụng giải pháp của Gokan sẽ làm việc tốt hơn với một lớp đánh dấu và một số javascript ở một nơi phổ biến.

Thay đổi thẻ neo của bạn để trông như thế này: thay đổi nhỏ

<a href="javascript:$('form').submit();" class="login-button"></a> 
+0

Giải pháp dễ nhất, cảm ơn. – Kehlan

+1

Cảm ơn! Thông thường bạn không muốn đặt rất nhiều javascript bên trong các thẻ html, nhưng nếu điều này chỉ xảy ra một lần trong giải pháp của bạn thì nó sẽ ổn thôi. Tuy nhiên, nếu có các thẻ neo trên tất cả các nhu cầu đăng bài bằng cách sử dụng giải pháp của Gokan sẽ làm việc tốt hơn với một lớp đánh dấu và một số javascript ở một nơi phổ biến. – Jay

+0

Tôi biết điều đó, cảm ơn bạn. Đây là nơi duy nhất trong phần này của trang web của tôi sẽ yêu cầu giải pháp này, do đó, nó sẽ không phải là một vấn đề. Hãy tin tôi đi, tôi sẽ thông thường hơn về nó nếu tôi không bảo toàn trang web trên các khuôn khổ/mẫu thiết kế. – Kehlan

0

Chỉ cần thay đổi Đường đơn, Đối với Optimization Tôi nghĩ đây là cách tốt nhất.

@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { id = "login", action = "Login" })) 
{ 
    // your HTML code 
    <div class="spacer"> 
     <a href="" onclick='$("#login").submit()' class="login-button"></a> 
    </div> 
} 
Các vấn đề liên quan