2012-12-09 41 views
5

Tôi gặp sự cố rất lạ với plugin Xác thực jQuery, nơi plugin này sẽ không xác thực select đã được điền trước rồi sửa đổi.Plugin xác thực jQuery không xác thực được điền sẵn

Bạn có thể nhìn vào mã ở đây: http://jsfiddle.net/VwRJ8/1/

Mã này không bao giờ cháy các alert() trong những dòng sau:

$('#edit_loc_save').click(function() { 
    var foo = $('#add_new_loc_form').valid(); 
    alert(foo); 
}); 
+0

Hộp 'chọn' sẽ xác thực khi gửi nhưng không thay đổi ban đầu. Ngoài ra, bạn nên đặt giá trị 'name' cho' select'. – 3dgoo

+0

Tôi cần phải cụ thể hơn. Nó không xác thực khi gửi. – RHPT

+0

Có thể có lỗi trong javascript của bạn khiến chức năng xác thực không bao giờ được gọi. Mã ví dụ của bạn hoạt động tốt khi gửi. Đây là một bản demo cho thấy: http://jsfiddle.net/bPcr8/5/. Kiểm tra bảng điều khiển lỗi của bạn để xem có lỗi nào không. Nếu không, bạn có thể chia sẻ phiên bản trực tiếp của sự cố cho mọi người không? – 3dgoo

Trả lời

5

Bạn có thể kiểm tra nếu chọn có giá trị mỗi lần giá trị được thay đổi:

Javascript

$('#myform').validate(); 
$('#myselectbox').on('change', function() { 
    $(this).valid(); 
}); 

Demo

Sửa 1

Dưới đây là những gì đang gây ra một lỗi trong javascript của bạn, ngăn chức năng Validate để hoạt động một cách chính xác:

new_loc_zip: { 
    required: true, 
    postalcode: true // This is not a correct setting in jquery validate 
}, 

Nếu bạn loại bỏ postalcode: true dòng, xác thực sẽ gọi đúng cách.

Demo

+0

Tôi có quy tắc xác thực tùy chỉnh cho mã bưu chính mà tôi quên bao gồm: \ Điều đó vẫn gây ra sự cố? – RHPT

+0

http://jsfiddle.net/VwRJ8/6/ dường như không có vấn đề gì với quy tắc xác thực. Chọn đang được xác thực chính xác. – 3dgoo

+0

Đó là bizaare mà tôi không thể làm cho nó hoạt động trên mã thực tế (Nó nằm trong một mạng công ty nên tôi không thể hiển thị nó). Tôi có nhiều biểu mẫu với quy tắc xác thực riêng biệt. Tôi tự hỏi nếu đó là vấn đề. – RHPT

1

http://jsfiddle.net/YRAga/2/

$('#myform').validate({ 
    rules: { 
     myselectbox: { 
      required: true 
     } 
    } 
}); 

$("#myselectbox").change(function() { 
    $("#myform").submit(); 
});​ 
1

nếu bạn muốn làm xác nhận trong khi thay đổi các tùy chọn, sau đó cố gắng để xử lý các sự kiện thay đổi của sự lựa chọn, và kích hoạt các xác nhận programatically

Hãy thử một cái gì đó như thế này

$(document).ready(function() { 
     $('#myselectbox').change(function() { 
       $('#myform').validate({ 
          rules: { 
           myselectbox: {required: true } 
          } 
          }).form(); 
         }); 
        });​ 

Xem fiddle: here

+0

không thể gọi validate() nhiều lần! –

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