2010-09-19 23 views
6

Tôi đã xây dựng một biểu mẫu khá phức tạp bao gồm một phần ẩn mà người dùng có thể chuyển đổi mở để nhập thêm thông tin nếu cần. Tuy nhiên, khi bạn nhấp vào nút chuyển đổi này có nhãn Tôi có nhiều Nativities, nó kích hoạt nút gửi và gửi sớm biểu mẫu.Tại sao nút "chuyển đổi" của jQuery kích hoạt nút Gửi trên biểu mẫu?

Biểu mẫu này hiện đang được phát hành, nhưng nó có thể được tìm thấy here.

Mã Tôi đang sử dụng cho nút bật tắt là:

<script type="text/javascript"> 
    $(function() { 
     $("#schedule").accordion({ header: "h5", collapsible: true }); 
     $("#more-nativities").hide(); 
     $("#toggle").click(function() { 
      $("#more-nativities").slideToggle("slow"); 
     }); 
    }); 
    </script> 

Mã cho nút gửi là khá cơ bản:

<input id="submit2" type="image" src="_images/btn_register.jpg" name="submit" alt="" onmouseover="javascript:this.src='_images/btn_register2.jpg'" onmouseout="javascript:this.src='_images/btn_register.jpg'"/> 

Mã cho nút bật tắt là:

<button id="toggle">I have more nativities</button> 

Bất kỳ ý tưởng nào về lý do tại sao nút chuyển đổi kích hoạt gửi? Và quan trọng hơn là làm thế nào để giải quyết vấn đề?

Cảm ơn!

+4

Ngoài ra, tôi khuyên bạn không nên sử dụng [inline JS. Viết Javascript không phô trương] (http://stackoverflow.com/questions/1064166/is-there-any-good-reason-for-javascript-to-be-inline). –

+0

Rất hữu ích khi cung cấp càng nhiều mã thích hợp càng tốt. Tôi đã chỉnh sửa trong mã ban đầu của bạn cho nút chuyển đổi. –

Trả lời

11

Hãy thử thêm một loại, tức là .:

<button type="button" id="#toggle">Text</button> 

http://www.w3schools.com/tags/tag_button.asp nói này cần được luôn luôn được xác định. Có thể trình duyệt mặc định là nút gửi.

+0

Tôi không biết những gì bạn nhìn thấy nhưng nút không có loại. –

+0

Không nhìn thấy nó trên trình duyệt của tôi. Tất cả những gì tôi có là: n00dle

+0

@SimpleCoder - Tôi không nhận ra đó là mã được nhắc tới ... Tôi nghĩ đây là về nút ' '. Mã cho các thẻ '

1

Hãy thử

return false; 

sau khi chuyển đổi trượt vào chức năng nhấp chuột fro nút bật tắt.

1

Từ W3Schools:

Luôn xác định thuộc tính type cho nút. Loại mặc định cho Internet Explorer là "nút", trong khi trong các trình duyệt khác (và trong đặc tả W3C ), đó là "gửi".

http://www.w3schools.com/tags/tag_button.asp

Hãy chắc chắn để xác định type="button"

2

Esteban có một giải pháp. Mô tả tốt hơn được mô tả trong số jQuery tutorial:

$(document).ready(function(){ 
    $("a").click(function(event){ 
    alert("As you can see, the link no longer took you to jquery.com"); 
    event.preventDefault(); 
    }); 
}); 
Các vấn đề liên quan