我使用了以下代码和单选按钮列表(通常有2个选项)。这允许我在<div>
内放置另一个输入(文本框,另一个单选按钮列表等),这些输入将被隐藏,直到单击按钮为止。
<script type="text/javascript">
$(document).ready(function () {
$("input[name$='RadioButton1']").on ( "change", function() {
if (this.value == "Yes") {
$('#someDisplay, #someDisplay input').show().removeAttr("disabled");
}
else {
$('#someDisplay, #someDisplay input').hide().attr("disabled", "disabled");
}
});
$("#someDisplay, #someDisplay input").hide().attr("disabled", "disabled");
});
</script>
同样,关于这一点的好处是,如果没有点击任何内容,<div>
内的输入将保持禁用状态,这意味着在提交表单时没有传递任何信息(即,输入是&#34 ;空&#34;或&#34; null&#34;并且不需要保存任何内容。)
现在我正在尝试使用此代码来处理复选框列表。不幸的是,如果您单击所有复选框,它将仅显示最后一次单击的复选框<div>
,即使单击了先前的复选框。我尝试使用JQuery toggle()
,虽然它会显示/隐藏与所点击内容相对应的<div>
,但问题是如果您取消选中复选框,{{1}内的输入将保持启用状态。对不起,如果我不清楚。这是我试过的:
<div>
我当时认为它可能是<script type="text/javascript">
$(document).ready(function () {
$("input[name$='Checkbox1']").on ( "change", function() {
if (this.value == "Choice 1") {
$('#someDisplay1, #someDisplay1 input').show().removeAttr("disabled");
}
else {
$('#someDisplay1, #someDisplay1 input').hide().attr("disabled", "disabled");
}
if (this.value == "Choice 2") {
$('#someDisplay2, #someDisplay2 input').show().removeAttr("disabled");
}
else {
$('#someDisplay2, #someDisplay2 input').hide().attr("disabled", "disabled");
}
});
$("#someDisplay1, #someDisplay1 input").hide().attr("disabled", "disabled");
$("#someDisplay2, #someDisplay2 input").hide().attr("disabled", "disabled");
});
</script>
的逻辑。
这是复选框输入html:
if/else
提前感谢您的帮助。
编辑:添加隐藏的<ol>
<li>
<label>
<input name="Checkbox1" type="checkbox" value="Choice 1" data-val="true">
Choice 1
</label>
</li>
<li>
<label>
<input name="Checkbox1" type="checkbox" value="Choice 2">
Choice 2
</label>
</li>
</ol>
:
EDIT2:意外删除<div>
disabled="disabled"
答案 0 :(得分:1)
也许你可以使用像
这样的东西from Tkinter import *
import os
root = Tk()
termf = Frame(root, height=1300, width=1000)
termf.pack(fill=BOTH, expand=YES)
wid = termf.winfo_id()
font = "'dejavu serif'"
os.system('xterm -into %d -geometry 70x60 -sb -fa -%s- & ' % (wid, font))
root.mainloop()
概念是在提交表单之前擦除所有隐藏的表单元素。 .filter(“:hidden”)是一个JQuery扩展,所以我们首先使用更快的$(“input”)选择器,然后使用过滤器对结果进行操作。隐藏查看元素本身及其祖先以确定元素是否被隐藏。
这当然会删除那些隐藏的元素,因此如果您通过Ajax提交并需要重新使用它们,您可以创建一个新表单并将可见表单元素克隆到其中。