JavaScript는 다중 선택 상자 입력을 구현합니다.
P粉502608799
2023-09-06 09:26:47
<p>선택을 클릭하면 상자가 나타나고 상위 및 하위 옵션을 포함한 여러 옵션을 선택할 수 있습니다. 옵션을 선택하면 입력창에 ID번호가 바로 표시됩니다. 확인을 클릭하면 상자가 숨겨집니다. 입력 상자 내에서 각 상자를 개별적으로 수행하고 싶습니다. 이것은 내 HTML입니다: </p>
<pre class="brush:php;toolbar:false;"><p>선택을 클릭하면 상자가 나타나고 상위 및 하위 옵션을 포함한 여러 옵션을 선택할 수 있습니다. 옵션을 선택하면 입력창에 ID번호가 바로 표시됩니다. 확인을 클릭하면 상자가 숨겨집니다. 입력 상자 내에서 각 상자를 개별적으로 수행하고 싶습니다. 이것은 내 HTML입니다: </p>
<pre><code><button class="btn-select">하나 선택...</button>
<div class="box" style="display:none">
<입력 유형="체크박스" 클래스="체크박스" 값="1">체크박스 1
<입력 유형="체크박스" 클래스="체크박스"값="2>체크박스 2
<입력 유형="텍스트" 클래스="입력 입력-1" 값="">
<버튼 클래스="btn-ok">확인</button>
</div>
<button class="btn-select">2개(상위/하위) 선택...</button>
<div class="box" style="display:none">
<ul class="아버지">
<입력 유형="체크박스" 클래스="체크박스"값="1>1부
<ul class="어린이">
<입력 유형="체크박스" 클래스="체크박스" 값="5">체크박스 5
<입력 유형="체크박스"클래스="체크박스"값="2>2부
<ul class="어린이">
<입력 유형="체크박스" 클래스="체크박스" 값="7">체크박스 7
<입력 유형="체크박스" 클래스="체크박스" 값="8">체크박스 8
<입력 유형="텍스트" 클래스="입력 입력-2" 값="">
<버튼 클래스="btn-ok">확인</button>
</div>
.
...选择三个...
..选择4个..
..
.</pre>
<p>这是我的JS(子级화父级):</p>
<pre class="brush:php;toolbar:false;">handleChildren = function() {
var $checkbox = $(this);
var $checkboxChildren = $checkbox.parent();
$checkboxChildren.each(함수() {
if ($checkbox.is(":checked")) {
$(this).prop("체크됨", "체크됨");
} 또 다른 {
$(this).removeProp("체크됨");
}
});
};
handlerParents = 함수(현재) {
var $parent = $(current).closest(".children").closest("li").find("> input[type=checkbox]");
if ($parent.parent().find(".children input[type=checkbox]:checked").length > 0) {
$parent.prop("체크됨", "체크됨");
} 또 다른 {
$parent.removeProp("선택됨");
}
handlerParents($parent);
}
$("ul.father").find("input[type=checkbox]").each(function() {
$(input).on("클릭", handlerChildren);
$(input).on("클릭", function() {
handlerParents(this);
});
});</pre>
<p>这是我的JS:</p>
<pre class="brush:php;toolbar:false;">$(document).on('click', '.btn-ok', function(){
$('.box').숨기기()
});
$(문서).on('클릭', '.btn-select', function(){
$('.box').숨기기()
$(this).next().show();
});
$(".checkbox").change(function() {
var 텍스트 = "";
$(".checkbox:checked").each(function() {
텍스트 += $(this).val() + ",";;
});
text = text.substring(0, text.length - 1);
$(this).next().val(text);
});</pre>
<p>现在控台显示了一个错误:</p>
<pre class="brush:php;toolbar:false;">잡히지 않은 내부 오류: 재귀가 너무 많습니다.
가장 가까운 파일:///var/www/html/jquey.js:1</pre></p>
귀하의 handleParents는 무조건 자신을 호출합니다.