2011-12-26 31 views
5

nộp Tôi đã một nút gửi như thế này:xác nhận vào nút

<input class="create_button" name="commit" 
     onclick="return validate_activity();" 
     type="submit" value="Save"> 

tôi thấy rằng nút này sẽ luôn gửi yêu cầu đến máy chủ bất cứ validate_activity() trả về đúng hay sai?

Sự cố ở đây là gì?

CẬP NHẬT

Thực ra, tôi đã phạm sai lầm trong validate_activity của tôi(), nó làm cho tôi nghĩ rằng nó trở lại sai, nhưng nó không phải.

+1

Bạn có thể đăng những gì bạn có trong 'validate_activity() '? –

+0

Phải, tôi đã mắc lỗi trong validate_activity() của mình. – Rocky

Trả lời

10

thử làm tương tự mà không cần trả lại, ví dụ: onclick="validate_activity();" và kiểm tra xem chức năng của bạn trả về false trong trường hợp vô hiệu

+1

Điều này cũng sẽ hoạt động trên một bản nộp

+0

Điều này sẽ không ngăn bất kỳ ai gửi biểu mẫu, ví dụ: bằng cách nhấn Enter trên trường nhập trong cùng một biểu mẫu. – cyanbeam

1

Bạn nên sử dụng các sự kiện submit của mẫu để xác nhận ..

<form action="..." method="..." onsubmit="return validate_activity()"> 
    <...> 
    <input class="create_button" name="commit" type="submit" value="Save" /> 
    <...> 
</form> 
2

Tôi đoán vấn đề là onclick="return validate_activity();", tuyên bố trở lại này được thực hiện khi nhấp nút gửi (không trả về false). Cách chính xác là onclick="validate_activity();" và trả về false trong hàm validata_activity, điều này sẽ dừng hành động gửi mặc định.

3
<input type="button" name="commit" 
value="Save" 
onclick="validate_activity(myform)" /> 

Bên trong Javascript, khi được xác thực, làm form.submit() hoặc ngược lại trả về false.

Tôi hy vọng điều này sẽ hữu ích! Điều này sẽ xác nhận biểu mẫu của bạn và gửi nó. Việc gửi này sẽ không thành công nếu Javascript bị tắt trong trình duyệt của bạn.

nếu bạn muốn nộp để tiến hành ngay cả khi javascript bị vô hiệu hóa trong trình duyệt của khách hàng (có nghĩa là không xác nhận nhưng sẽ nộp), sau đó

<input type="button" name="commit" 
value="Save" 
onclick="validate_activity(myform);return false;" /> 

Tôi hy vọng không có xác nhận không nên đánh bạn ở tất cả. Nhưng sau đó javascript chỉ là phía khách hàng và tôi hy vọng bạn sẽ có kiểm tra sanity nghiêm trọng trên anyways phía máy chủ và của nhiều người, tôi nghĩ rằng mọi người sử dụng nó để kiểm tra lĩnh vực rất cơ bản.

2

Nếu bạn đang thực hiện xác nhận biểu mẫu, hãy xác thực nó trên sự kiện onclick của nút, cách bạn đang cố gắng không tốt hơn bạn nên sử dụng nó trên <form></form>onsumbmit sự kiện như thế này.

<form action="someURL" method="post" onsubmit="return validate_activity();"> 

</form> 
2

Hãy thử này ...

<form action="...." onsubmit="submitForm()" name="form"> 

<input type="submit" value="Save"> 

</form> 


function submitForm(){ 

    if(validationfails){ 

     return false; 
    } 
    else { 
     document.form.submit(); 
     return true; 
    } 
} 
Các vấn đề liên quan