확인란을 반복하여 선택 또는 선택 해제된 각 항목 수를 계산합니다.
문제가 좀 생겼습니다.여기 간단한 설명이 있습니다.
저는 표준 양식에 12개의 확인란이 있습니다.제가 해야 할 일은 각 항목을 반복해서 살펴보고 어떤 항목이 선택되어 있고 어떤 항목이 선택되어 있지 않은지 확인하는 것입니다.
이를 사용하여 문자열을 작성한 다음 데이터베이스 필드에 입력할 수 있습니다.여기 예가 있습니다.
점검 - 1번 점검 - 점검)
선택 - 안 함2번 설정 - 선택 안 함)
점검 - 3번 점검 - 점검)
1,0,1
지금까지, 저는 약간의 코드를 가지고 있습니다.
$('input[type=checkbox]').each(function () {
if (this.checked) {
console.log($(this).val());
}
});
전부가 아니라 체크된 것만 가져오는 것을 제외하고는 완벽하게 작동합니다.
표시된 형식으로 정확하게 결과 문자열을 작성하려면 다음을 사용할 수 있습니다.
var sList = "";
$('input[type=checkbox]').each(function () {
sList += "(" + $(this).val() + "-" + (this.checked ? "checked" : "not checked") + ")";
});
console.log (sList);
하지만, 저는 @SLAKs의 의견에 동의합니다. 저는 당신이 이것을 데이터베이스에 저장할 구조를 다시 고려해야 한다고 생각합니다.
편집: 죄송합니다. 찾으시는 출력 형식을 잘못 읽었습니다.다음은 업데이트입니다.
var sList = "";
$('input[type=checkbox]').each(function () {
var sThisVal = (this.checked ? "1" : "0");
sList += (sList=="" ? sThisVal : "," + sThisVal);
});
console.log (sList);
선택기 사용
다음과 같은 모든 확인란을 선택할 수 있습니다.
var boxes = $(":checkbox:checked");
모든 확인되지 않은 항목은 다음과 같습니다.
var nboxes = $(":checkbox:not(:checked)");
이러한 컬렉션 중 하나를 순환하여 해당 이름을 저장하기만 하면 됩니다.누락된 항목이 있으면 확인되었거나 확인되지 않았음을 알 수 있습니다.PHP에서, 만약 당신이 선택된 이름들의 배열을 가지고 있다면, 당신은 단지 나중에 어떤 특정한 상자를 선택해야 하는지를 알기 위한 요청을 할 수 있습니다.
직렬화
jQuery에는 양식 컨트롤의 상태를 유지하는 직렬화 방법도 있습니다.예를 들어, jQuery의 웹 사이트에 제공된 예는 다음과 같습니다.
single=Single2&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio2
이렇게 하면 요소를 선택한 정보도 유지할 수 있습니다.
모든 확인란을 기록하여 반복할 수 있습니다.$(':checkbox').each(...)
.
내가 질문을 올바르게 이해했다면 다음 코드를 찾고 있는 것입니다.
var str = "";
$(':checkbox').each(function() {
str += this.checked ? "1," : "0,";
});
str = str.substr(0, str.length - 1); //Remove the trailing comma
이 코드는 모든 확인란을 순환하고 다음 중 하나를 추가합니다.1,
또는0,
줄로
저는 원래 게시물에서 제기된 스키마 고려 사항에 충분한 시간이 할애되지 않았다고 생각합니다.그래서, 여기 새로운 사람들을 위해 고려해야 할 것이 있습니다.
이 솔루션을 구축했다고 가정해 보겠습니다.모든 작은 값은 단일 값으로 연결되어 데이터베이스에 저장됩니다.데이터베이스에 [조금] 공간을 절약하고 코딩 시간을 참조하십시오.
이제 현재 확인란 3과 4 사이에 새 확인란을 추가하는 작업을 자주 수행해야 한다는 점을 고려해 보겠습니다. 개발 관리자, 고객 등 단순한 변경 사항으로 예상되는 모든 작업을 수행해야 합니다.
따라서 확인란을 UI(쉬운 부분)에 추가합니다.반복 코드는 확인란 수에 관계없이 이미 값을 연결합니다.또한 데이터베이스 필드가 막대 또는 다른 문자열 유형일 뿐이므로 문제가 없을 것입니다.
고객이나 귀사가 변경 전의 데이터를 보려고 하면 어떻게 됩니까?당신은 기본적으로 왼쪽에서 오른쪽으로 직렬화하고 있습니다.그러나 이제 3 이후의 값은 1자씩 모두 해제됩니다.기존 데이터를 모두 사용하여 무엇을 할 예정입니까?애플리케이션을 작성하고, 데이터베이스에서 모두 꺼내 새로운 질문 위치에 대한 기본값을 추가하도록 처리한 후 데이터베이스에 다시 저장할 것입니까?일주일 또는 한 달 간격으로 여러 개의 새로운 가치를 갖게 되면 어떻게 됩니까?위치를 이동하고 jQuery가 다른 순서로 처리하면 어떻게 됩니까?모든 데이터가 호스트되고 다시 정렬하려면 다시 처리해야 합니다.
긴밀한 핵심 가치 관계를 제공하지 않는다는 개념은 터무니없는 위기이며 조만간 문제가 발생할 것입니다.이것을 고려하고 계신 분들은 그러지 마세요.스키마 변경에 대한 다른 제안은 괜찮습니다.하위 테이블, 기본 테이블의 더 많은 필드, 질문-응답 테이블 등을 사용합니다.데이터의 구조가 변경될 수 있는 경우 레이블이 지정되지 않은 데이터를 저장하지 마십시오.
$.extend($.expr[':'], {
unchecked: function (obj) {
return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
}
});
$("input:checked")
$("input:unchecked")
언급URL : https://stackoverflow.com/questions/1965075/loop-through-checkboxes-and-count-each-one-checked-or-unchecked
'sourcecode' 카테고리의 다른 글
Angular2/4에서 "ng-reflect-*" 속성은 무엇을 합니까? (0) | 2023.08.16 |
---|---|
Symfony2에서 작동하는 AJAX/XMLHttpRequest 페이지 테스트 (0) | 2023.08.16 |
PowerShell을 통해 Windows Server에서 IE 보안 사용 안 함 (0) | 2023.08.16 |
구조 포인터 내부의 포인터 참조 취소 (0) | 2023.08.16 |
Spring @값 주석은 항상 null로 평가합니까? (0) | 2023.08.16 |