gpt4 book ai didi

javascript - 添加一个新的 div 当且仅当表单中有任何输入

转载 作者:行者123 更新时间:2023-12-03 08:20:33 25 4
gpt4 key购买 nike

我用一些java脚本制作了一个表单。现在,当两个字段之一都有输入时,我想添加一个新行“player”(div idplayers)。我是一个真正的java脚本初学者,希望有人可以帮助我一些“简单”的解释,这样我就能理解发生了什么。 (嵌入的脚本也是来自其他人:))

提前致谢。

<html>
<body>
<form action="" method="post">
<ul id="ul_stappen">
<li id="step_1" class="selected">step_1</li>
<li id="step_2" class="">step_2</li>
<li id="step_3" class="">step_3</li>
<li id="step_4" class="">step_4</li>
</ul>
<div id="div_stappen">
<div id="content_step_1" class="content_step" style="display: block;">content step 1</div>
<div id="content_stap_2" class="content_step" style="display: none;">content step 2</div>
<div id="content_stap_3" class="content_step" style="display: none;">content step 3</div>
<div id="content_stap_4" class="content_step" style="display: none;">
<div id="players">
<label for="name_1">Name player 1</label>
<input type="text" name="name_1" id="name_1" autocomplete="off" value="">
<label for="email_1">Email player</label>
<input type="text" name="email_1" id="email_1" autocomplete="off" value="">
</div>
</div>
</div>
</form>
</body>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js'></script>
<script>
(function() {
$('#ul_stappen>li').on('click',function(){
if(!$(this).hasClass('selected')){
$('.selected').removeClass('selected');
$(this).addClass('selected');
$('#div_stappen>div').filter(function(){return $(this).css('display')==='block'}).hide();
$('#div_stappen>div').eq($(this).index()).show();
}
});
})();
</script>

最佳答案

为此,您需要监听输入的 .change() 事件。然后测试最后一个 player 是否不为空(以避免每次 input 更改时添加玩家)并附加新玩家的输入,并根据情况处理名称、文本和 id到新玩家的号码。

这是代码:

$('#players').on('change', 'input', function () {
var last_player = $('.player').length;
var next_player = last_player + 1;

if ($('#name_' + last_player).val() == '' && $('#email_' + last_player).val() == '') {
return false;
}
var $new_player = $('<div class="player"></div>');

$new_player.append('<label for="name_' + next_player + '">Name player ' + next_player + '</label>');
$new_player.append('<input type="text" name="name_' + next_player + '" id="name_' + next_player + '" autocomplete="off" value="">');
$new_player.append('<label for="email_' + next_player + '">Email player ' + next_player + '</label>');
$new_player.append('<input type="text" name="email_' + next_player + '" id="email_' + next_player + '" autocomplete="off" value="">');

$('#players').append($new_player);
});

还有一个正在工作的JSFiddle

顺便说一句,我认为这不是最好的方法。一般来说,最好在每个玩家旁边添加一些添加删除图标。

关于javascript - 添加一个新的 div 当且仅当表单中有任何输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766683/

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