JavaScript实现多选框输入
P粉502608799
P粉502608799 2023-09-06 09:26:47
[HTML讨论组]
<p>当我点击选择时,会弹出一个框,我们可以选择多个选项,包括父级和子级。当选项被选中后,立即在输入框中显示ID号码。当我们点击确定时,框将被隐藏。我希望每个框都在输入框中单独完成。这是我的HTML:</p> <pre class="brush:php;toolbar:false;">&lt;p&gt;当我点击选择时,会弹出一个框,我们可以选择多个选项,包括父级和子级。当选项被选中后,立即在输入框中显示ID号码。当我们点击确定时,框将被隐藏。我希望每个框都在输入框中单独完成。这是我的HTML:</p> <pre><code>&lt;button class=&quot;btn-select&quot;&gt;选择一个...&lt;/button&gt; &lt;div class=&quot;box&quot; style=&quot;display:none&quot;&gt; &lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;1&quot;&gt;复选框1 &lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;2&quot;&gt;复选框2 &lt;input type=&quot;text&quot; class=&quot;input input-1&quot; value=&quot;&quot;&gt; &lt;button class=&quot;btn-ok&quot;&gt;确定&lt;/button&gt; &lt;/div&gt; &lt;button class=&quot;btn-select&quot;&gt;选择两个(父级/子级)...&lt;/button&gt; &lt;div class=&quot;box&quot; style=&quot;display:none&quot;&gt; &lt;ul class=&quot;father&quot;&gt; &lt;li&gt; &lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;1&quot;&gt;部分1 &lt;ul class=&quot;children&quot;&gt; &lt;li&gt;&lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;5&quot;&gt;复选框5&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt; &lt;li&gt; &lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;2&quot;&gt;部分2 &lt;ul class=&quot;children&quot;&gt; &lt;li&gt;&lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;7&quot;&gt;复选框7&lt;/li&gt; &lt;li&gt;&lt;input type=&quot;checkbox&quot; class=&quot;checkbox&quot; value=&quot;8&quot;&gt;复选框8&lt;/li&gt; &lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;input type=&quot;text&quot; class=&quot;input input-2&quot; value=&quot;&quot;&gt; &lt;button class=&quot;btn-ok&quot;&gt;确定&lt;/button&gt; &lt;/div&gt; . ...选择三个... ..选择四个.. .. .</pre> <p>这是我的JS(子级和父级):</p> <pre class="brush:php;toolbar:false;">handleChildren = function() { var $checkbox = $(this); var $checkboxChildren = $checkbox.parent(); $checkboxChildren.each(function() { if ($checkbox.is(&quot;:checked&quot;)) { $(this).prop(&quot;checked&quot;, &quot;checked&quot;); } else { $(this).removeProp(&quot;checked&quot;); } }); }; handleParents = function(current) { var $parent = $(current).closest(&quot;.children&quot;).closest(&quot;li&quot;).find(&quot;&gt; input[type=checkbox]&quot;); if ($parent.parent().find(&quot;.children input[type=checkbox]:checked&quot;).length &gt; 0) { $parent.prop(&quot;checked&quot;, &quot;checked&quot;); } else { $parent.removeProp(&quot;checked&quot;); } handleParents($parent); } $(&quot;ul.father&quot;).find(&quot;input[type=checkbox]&quot;).each(function() { $(input).on(&quot;click&quot;, handleChildren); $(input).on(&quot;click&quot;, function() { handleParents(this); }); });</pre> <p>这是我的JS:</p> <pre class="brush:php;toolbar:false;">$(document).on('click', '.btn-ok', function(){ $('.box').hide() }); $(document).on('click', '.btn-select', function(){ $('.box').hide() $(this).next().show(); }); $(&quot;.checkbox&quot;).change(function() { var text = &quot;&quot;; $(&quot;.checkbox:checked&quot;).each(function() { text += $(this).val() + &quot;,&quot;; }); text = text.substring(0, text.length - 1); $(this).next().val(text); });</pre> <p>现在控制台显示了一个错误:</p> <pre class="brush:php;toolbar:false;">Uncaught InternalError: too much recursion closest file:///var/www/html/jquey.js:1</pre></p>
P粉502608799
P粉502608799

全部回复(1)
P粉141035089

您的handleParents无条件地调用自身。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号