【发布时间】:2020-05-05 06:16:47
【问题描述】:
我想建立一个可以添加和删除用户的功能
以逗号分隔的字符串存储在输入字段中,
在 html 中显示添加的用户列表,以便在需要时删除每个行项目。
不幸的是,我的代码中有以下问题:
逗号分隔的用户列表 + html 列表将用户添加到每个新创建的订单项
从 HTML 列表中删除一个订单项无法正常工作。
预期结果:
输入值: Adam,Bertha,Caesar
html 值:
亚当(删除)
伯莎(删除)
凯撒(删除)
能否请您看看我的js fiddle 并提示我如何在 html + 输入字段中正确显示用户列表?
var users = [];
$("#adddis").click(function() {
var values = $('input[type=text]').map(function() {
return $(this).val();
}).get().join();
$('#adddisnames').val("");
addUser(values);
});
function buildUserlist() {
var html = "<hr>";
for (var i = 0; i < users.length; i++) {
html += users[i] + ' <a href="#" onclick="removeUser(' + i + '); return false;">X</a><br>';
};
$('#userdiv').html(html);
}
function addUser(values) {
users.push(values);
buildUserlist();
$('#storadddis').val(users);
}
function removeUser(index) {
users.splice(index, 1);
buildUserlist();
$('#storadddis').val(users);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label>Name</label>
<input type="text" id="adddisnames" value="">
<input type="button" name="get_value" id="adddis" value="add"> =>
<input type="text" id="storadddis" size="35">
<div id="userdiv"></div>
【问题讨论】:
-
var values = $('input[type=text]').map(function() { return $(this).val(); }).get().join();为什么?您正在从页面上的所有输入字段获取用户,包括 storaddis。 -
只要
$("#adddis").click(function() { var value = $('#adddisnames').val(); if (value) addUser(value); }); -
随意删除问题
-
你知道如何检查用户是否已经存储在数组中并防止保存多余的用户吗?
-
function addUser(values) { if (users.indexOf(values) !=-1) return; users.push(values); buildUserlist(); $('#storadddis').val(users); }