gpt4 book ai didi

jquery - 字段取决于另一个字段在调查表中的答案

转载 作者:行者123 更新时间:2023-11-30 23:18:01 25 4
gpt4 key购买 nike

几天来我一直在尝试解决这个问题。我必须进行在线调查,表单是根据用户之前的一些选择动态加载的。这意味着我不能使用“名称”或输入的“id”属性,因为它们并不总是相同的。我正在使用 Jquery 验证插件来制作所有必需的输入并且它工作正常。但我的问题是:

  • 有些问题取决于上一个问题的回答,这意味着不仅要回答上一个问题,而且要有一个具体的答案。 (例如:“你喜欢水果吗?”如果答案是"is"则显示另一个问题“这些水果中你通常吃哪些?”并使其成为必填项,如果答案是“否”则不显示该问题完全没有。

我想我会在数据库问题表中添加一个字段“依赖”来使一些问题依赖于其他问题,但是依赖的类型因问题而异。

如果我有一个静态表单,这会很容易,但事实并非如此。

请帮忙!

最佳答案

我正在为一些自定义属性使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com