Javascript 在一个数组中保存多个下拉选项
我从一个数据库生成问题,用户将在下拉菜单中选择答案。当用户选择某个选项时,一个建议将被推送到触发JavaScript更改事件的数组中。当用户完成所有问题后,我将把数组作为一行从存储所有建议的表单发送到数据库 当我尝试发送建议时。建议第一次被推送。但是当用户更改答案时,数组会再次被推送,并显示重复消息Javascript 在一个数组中保存多个下拉选项,javascript,php,laravel,Javascript,Php,Laravel,我从一个数据库生成问题,用户将在下拉菜单中选择答案。当用户选择某个选项时,一个建议将被推送到触发JavaScript更改事件的数组中。当用户完成所有问题后,我将把数组作为一行从存储所有建议的表单发送到数据库 当我尝试发送建议时。建议第一次被推送。但是当用户更改答案时,数组会再次被推送,并显示重复消息 var suggestions=[]; function sendSuggestion() { if (document.getElementById("1").v
var suggestions=[];
function sendSuggestion() {
if (document.getElementById("1").value == "no" && document.getElementById("2").value == "no" ){
suggestions.push("you need to study more");
}
}
</script>
当用户选择id为1和2的“无问题”时,我希望您的输出需要进一步研究。如果您不需要存储多个建议,可以在每次函数调用时将数组设置为空
var suggestions=[];
function sendSuggestion() {
// here will work
suggestions = [];
if (document.getElementById("1").value == "no" && document.getElementById("2").value == "no") {
// or if you only want to set to empty if the conditional passes you can do it here
suggestions = [];
suggestions.push("you need to study more");
}
}
如果需要或希望填充数组,可以检查特定项。您将运行以下命令,而不是在条件中重新初始化数组
let index = suggestions.indexOf("you need to study more");
// negative one is returned if the item is not found
// if it's found we'll remove it from the array
if (index > -1) suggestions.splice(index, 1);
文件//
阵列拼接-
Array.indexOf-使用以下内容更新javascript函数:
function sendSuggestion() {
if (document.getElementById("1").value == "no" && document.getElementById("2").value == "no" ){
if (suggestions.indexOf("you need to study more") == -1){
suggestions.push("you need to study more");
}
}
if (document.getElementById("1").value == "yes" && document.getElementById("2").value == "yes" ){
var index = suggestions.indexOf("you need to study more");
if (index > -1) {
suggestions.splice(index, 1);
}
}
}
这将允许您的数组中有不同的建议,没有重复项。在sendSuggestion中测试答案之前,您需要清除建议,添加建议=[];之前,请使用对而不是普通数组。这样,您可以轻松访问以前添加的答案并将其替换为新的答案。如果用户将两者都还原为“是”,会删除消息吗?在这种情况下,您需要在同一函数中写下单独的“如果”条件以删除此消息元素。更新了我的答案。
function sendSuggestion() {
if (document.getElementById("1").value == "no" && document.getElementById("2").value == "no" ){
if (suggestions.indexOf("you need to study more") == -1){
suggestions.push("you need to study more");
}
}
if (document.getElementById("1").value == "yes" && document.getElementById("2").value == "yes" ){
var index = suggestions.indexOf("you need to study more");
if (index > -1) {
suggestions.splice(index, 1);
}
}
}