2013-02-15 20 views
6

Tôi có một biểu mẫu có thể xuất hiện trên các trang khác nhau và tùy theo hoàn cảnh, các trường không phải lúc nào cũng được yêu cầu.Khi nhấp, ẩn div và xóa thuộc tính bắt buộc

Tôi có mã để ẩn div, nhưng cần các trường nhập không còn cần thiết nữa. Sử dụng thuộc tính Bắt buộc HTML5. Gặp sự cố khi nhận mã để hoạt động. Mã dưới đây:

$('#detailssame').click(function() { 
    if($(this).is(':checked')) { 
     $(\"#detailssamehide\").hide(); 
    } else { 
     $(\"#detailssamehide\").show(); 
    }    
}); 
$('.fullboxform input[type=text], .fullboxform select').each(function() { 
      $(this).removeAttr('required'); 
}); 

Tất cả trợ giúp đều được đánh giá cao.

Hóa ra mã ở trên không hoạt động chính xác, nhưng câu trả lời thay thế có sẵn sử dụng prop

Trả lời

6

Cố gắng sử dụng prop() chức năng cho thiết lập các thuộc HTML5.

$(function() { 
    $('#detailssame').click(function() { 
     var checked = $(this).is(':checked'); 
     if(checked) { 
      $("#detailssamehide").hide(); 
     } else { 
      $("#detailssamehide").show(); 
     }  
     $('.fullboxform input[type=text], .fullboxform select').each(function() { 
      $(this).prop('required', !checked); 
     }); 
    }); 
}); 

http://jsfiddle.net/ThsXU/

+0

Theo các bài đọc của tôi, đặt '' chống ('bắt buộc', sai) '' KHÔNG loại bỏ trạng thái yêu cầu một cách đáng tin cậy trong tất cả các trình duyệt. Bạn phải sử dụng '' removeAttr ('required') '' để có kết quả ổn định trong tất cả các trình duyệt. – Jpsy

1

Loại bỏ các dấu xồ nguợc là đủ cho tôi để chạy mã của bạn với hiệu quả mong muốn.

+0

Các dấu gạch chéo ở trong đó vì nó là đầu ra của PHP. Bạn chính xác nó đã chạy. Chỉ cần kiểm tra thêm với giao diện điều khiển và không nhận ra tôi đã có một vài đầu vào cần thiết mà không phải là văn bản. –

+0

Cố gắng không xuất JS trong PHP, vì nó ngăn không cho bộ nhớ đệm và dễ dàng hơn để làm xáo trộn và khó khăn hơn để duy trì. Quan trọng nhất, tránh đặt mã từ một ngôn ngữ vào chuỗi ngôn ngữ khác. –