作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几天来我一直在尝试解决这个问题。我必须进行在线调查,表单是根据用户之前的一些选择动态加载的。这意味着我不能使用“名称”或输入的“id”属性,因为它们并不总是相同的。我正在使用 Jquery 验证插件来制作所有必需的输入并且它工作正常。但我的问题是:
我想我会在数据库问题表中添加一个字段“依赖”来使一些问题依赖于其他问题,但是依赖的类型因问题而异。
如果我有一个静态表单,这会很容易,但事实并非如此。
请帮忙!
最佳答案
我正在为一些自定义属性使用 html5 data-
属性来存档:
html:
<input type="checkbox" data-dependid="test" />
<input type="text" data-dependid="test2" data-dependedid="test" data-dependedvalue="true" data-dependedtype="disabled" disabled="disabled" />
<input type="text" data-dependedid="test2" data-dependedvalue="input" data-dependedtype="disabled" disabled="disabled" />
jQuery:
$(function() {
$("[data-dependid]").die().live("change keyup", function () {
var that = this;
var depends = $("[data-dependedid='" + $(that).attr("data-dependid") + "']");
depends.each(function (i, depend) {
var isSame = false;
if (($(that).is(":checked") + "" == $(depend).attr("data-dependedvalue")) || ($(that).val() == $(depend).attr("data-dependedvalue"))) {
isSame = true;
}
$(depend).attr($(depend).attr("data-dependedtype"), !isSame); //works for checked and disabled
});
});
});
这使得第一个文本框依赖于复选框。
第二个文本框取决于第一个文本框的值(输入)。
查看此 fiddle
要添加显示选项,请在 foreach 中添加:
var isSame = false;
if (($(that).is(":checked") + "" == $(depend).attr("data-dependedvalue")) || ($(that).val() == $(depend).attr("data-dependedvalue"))) {
isSame = true;
}
if ($(depend).attr("data-dependendtype") == "display") {
if (!isSame)
$(depend).fadeOut();
else
$(depend).fadeIn();
}
else {
$(depend).attr($(depend).attr("data-dependedtype"), !isSame);
}
关于jquery - 字段取决于另一个字段在调查表中的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16734050/
我是一名优秀的程序员,十分优秀!