2011-06-22 28 views
27

Tôi có ứng dụng MVC3 bằng Project Awesome (http://awesome.codeplex.com/), nhưng tôi nhận được một hành vi lạ trên hộp kiểm. Tôi có Html đơn giản sau đây trong cửa sổ bật lên Modal <input type="checkbox" class="check-box" name="IsDeleted">Hộp kiểm nhập vào HTML trả về 'Bật' thay vì 'Đúng' khi gửi biểu mẫu

Khi tôi gửi biểu mẫu chứa phần tử này, giá trị bài đăng của nó là 'on' thay vì dự kiến ​​'true' (khi phần tử được chọn).

Có ai biết tại sao điều này không? Tôi giả định có thể có một số javascript một nơi nào đó rối tung với các dữ liệu mẫu, nhưng muốn kiểm tra xem không có một số HTML tôi đang mất tích.

Cảm ơn

+0

Tôi có điều này khi tôi đang sử dụng e.target.value, khi cần e.target.checked hy vọng điều này sẽ giúp ai đó. – fungusanthrax

Trả lời

45

Đặt các hộp kiểm value thuộc tính để true và bạn sẽ nhận true về giá trị bài viết của bạn.

+6

Điều này đúng nếu và chỉ khi người dùng chọn hộp. Nếu không kiểm tra thì không có gì được đăng. Ngoài ra, cơ chế ràng buộc của MVC sẽ đặt giá trị thành null nếu không có gì được đăng cho hộp kiểm đó. – Mike

+1

ví dụ: ...... chức năng CBSelectedValueToTrue (cb) { nếu (cb.được chọn) { cb.value = "true"; } } – BriOnH

4

Đó là trình duyệt cụ thể, tôi giả sử, những gì cần gửi khi giá trị không được xác định. Bạn cần xác định thuộc tính value trên radio/hộp kiểm để đảm bảo những gì sẽ được chuyển lại cho bạn. Tôi sẽ đề nghị value="1"

0

Chắc chắn bạn chỉ nên kiểm tra xem nó có được đặt hay không - giá trị mà nó gửi đi không liên quan, nếu nó không được chọn, thì không có gì được gửi khi bạn POST.

+0

Được chỉ định trong W3C? Tôi nghĩ điều này phụ thuộc vào trình duyệt. – sferencik

-4

Sử dụng jQuery để quyết định qua trình duyệt. Và nó sẽ trả lại đúng hoặc false.

$('#check-box-id').attr('checked') == true 

nếu hộp kiểm của bạn có id check-box-id. Đối với phiên bản hiện tại của bạn sử dụng tiếp theo (chọn theo tên lớp):

$('.check-box').attr('checked') == true 
1

thiết data-val="true" and value="true" bởi deafult ... nếu hộp kiểm được kiểm tra sau đó trả về true

-4

Sử dụng jQuery

var out=$('.check-box').is('checked') 

Nếu hộp kiểm được chọn ra = true else out = false

-1

Trong HTML, a dd một input type = "hidden" trên hộp kiểm:

<input name="active" id="activeVal" type="hidden"> 
<input id="active" type="checkbox"> 

Sau đó, thêm một kịch bản như sau:

$('#activeVal').val($('#active').is(':checked')); 
$('#active').change(function() { 
    $('#activeVal').val($('#active').is(':checked')); 
}); 

Khi bạn làm ví dụ. $('#your-form').serialize() trong jQuery, bạn sẽ nhận được giá trị của hộp kiểm khi được chọn active: true hoặc bỏ chọn active: false

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