gpt4 book ai didi

javascript - jquery 根据选定的下拉选项选择性显示表单输入

转载 作者:行者123 更新时间:2023-11-30 20:14:05 25 4
gpt4 key购买 nike

$( document ).ready(function() {
return $("body").on("change",".creator_name_type", function(event){
if (event.target.value == 'Personal') {
$(this).siblings(".organization_name").hide();
$(this).siblings(".given_name").show();
$(this).siblings(".family_name").show();
} else {
$(this).siblings(".given_name").hide();
$(this).siblings(".family_name").hide();
$(this).siblings(".organization_name").show();
}
});
});

$(document).ready(function(){
return $("body").on("click", ".add_creator", function(event){
event.preventDefault();
var creatorClass = $(this).attr('data-addCreator');
var cloneUbiDiv = $(this).parent('div' + `${creatorClass}`).clone();
$(`${creatorClass}` + ':last').after(cloneUbiDiv);

});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div class="creator">
<select class="creator_name_type">
<option value="Personal">Personal</option>
<option value="Organisational">Organisational</option>
</select>
given name: <input type="text" name="gname" class="given_name"><br>
family name: <input type="text" name="fname" class="family_name"><br>
organization name: <input type="text" name="oname" class"organization_name"><br>

<a href="#" class=" add_creator" data-addCreator=".creator">Add another </a>

<div>
</body>
</html>

我正在尝试根据所选选项有选择地显示表单输入。该表单具有用于添加更多 的按钮,这些按钮只是克隆并将克隆的 html 附加到 div 的底部。当我单击添加更多 时,现在有 2 个选择标签,其中一个选择值为“个人”,另一个选择值为“组织”。它不是根据 if/else 语句有选择地显示表单字段,而是为两者显示相同的表单字段,同时为每个下拉选项保留不同的选定值,即一个下拉列表显示已选择的个人,另一个显示组织。每次为其中之一触发 on change 事件时,都会为两者显示相同的表单字段,而不是根据 if/else 语句显示表单字段。

$( document ).ready(function() {
return $("body").on("change",".creator_name_type", function(event){
if (event.target.value == 'Personal') {
$(".organization_name").hide();
$(".given_name").show();
$(".family_name").show();
} else {
$(".given_name").hide();
$(".family_name").hide();
$(".organization_name").show();
}
});
});

最佳答案

您遇到的问题是您正在根据类(例如 .given_name)进行显示/隐藏,并且所有类似的表单字段都将具有相同的类,因此它们都会一起更改。尝试使用 .siblings找到要显示/隐藏的适当字段。您在选项值中也有拼写错误,它是 "personal",而不是 "Personal",并且您缺少 "="在类 organization_name 的输入中。这是一个工作片段:

$( document ).ready(function() {
return $("body").on("change",".creator_name_type", function(event){
if (event.target.value == 'personal') {
$(this).siblings(".organization_name").hide();
$(this).siblings(".given_name").show();
$(this).siblings(".family_name").show();
} else {
$(this).siblings(".given_name").hide();
$(this).siblings(".family_name").hide();
$(this).siblings(".organization_name").show();
}
});
});

$(document).ready(function(){
return $("body").on("click", ".add_creator", function(event){
event.preventDefault();
var creatorClass = $(this).attr('data-addCreator');
var cloneUbiDiv = $(this).parent('div' + `${creatorClass}`).clone();
$(`${creatorClass}` + ':last').after(cloneUbiDiv);

});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div class="creator">
<select class="creator_name_type">
<option value="personal">Personal</option>
<option value="organisational">Organisational</option>
</select>
given name: <input type="text" name="gname" class="given_name"><br>
family name: <input type="text" name="fname" class="family_name"><br>
organization name: <input type="text" name="oname" class="organization_name"><br>

<a href="#" class=" add_creator" data-addCreator=".creator">Add another </a>

<div>
</body>
</html>

关于javascript - jquery 根据选定的下拉选项选择性显示表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52088127/

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