Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从多个选择列表中删除重复值时,formemail上的数据丢失_Javascript_Select_Input_Html Select_Onchange - Fatal编程技术网

Javascript 从多个选择列表中删除重复值时,formemail上的数据丢失

Javascript 从多个选择列表中删除重复值时,formemail上的数据丢失,javascript,select,input,html-select,onchange,Javascript,Select,Input,Html Select,Onchange,我正在使用上面提供的脚本示例,它在输入页面上工作得非常好 <script> function disableValue(str){ var dis1=document.getElementsByTagName("option"); for(var i=0;i<dis1.length;i++){ if(dis1[i].value==str){

我正在使用上面提供的脚本示例,它在输入页面上工作得非常好

<script>
    function disableValue(str){
                var dis1=document.getElementsByTagName("option");
                 for(var i=0;i<dis1.length;i++){
                        if(dis1[i].value==str){
                             dis1[i].disabled=true;
                        }
                 }
                return true;
    }

</script>
但是,当我插入脚本以消除重复值时,相同的用户输入结果如下:

1. contest = NFL Week 4 (18 Games)
2. emailaddress = boneman@unforgettable.com
3. game01 = Eagles
4. game02 = USC Trojans
5. game03 = Virginia Cavaliers
6. game04 = at Oregon State Beavers
出于某种原因,该脚本不仅从其他选择列表中删除了输入号码,还从我的formemail中删除了该号码

我的提交代码是:

<input type="submit" name="submit" value="Print and Submit Football Pool" onclick = window.print();>
<input type="reset" name="reset" value="Reset" >       
<input type="hidden" name="thankyou_url" value="http://www.xxxxxxx/Thank You for Your 
Entry.html">

是否有办法保留formemail上的输入数据选择,同时删除其他选择列表中的选定值


谢谢

您好,我猜由于该选项已禁用,您用于从表单中取出数据的原因是忽略了禁用字段

所以,正如我现在看到的,你必须选择

  • 更改从表单收集数据的方式

  • 这比禁用所选选项要简单一些,使用display none或使用一个类将它们隐藏起来。这一个并不漂亮,但它应该在不对代码进行任何重大更改的情况下为您提供所需的内容

  • 您可以使用以下代码向div添加样式:

    document.getElementById("myDIV").classList.add("mystyle");
    
    或 如果我需要你的代码更直接的方法 我认为您可以用以下内容替换代码中的dispabled=true:

    document.getElementById('answer-12702744').style.display = 'none;'
    

    谢谢,一旦我把禁用改为隐藏,它就工作得很好!我注意到的一件事是,如果用户改变了对选择的想法,现在隐藏的值不会返回列表。有没有一种方法可以在一个值被隐藏后将其取消隐藏?嗯,是的,我猜快速而肮脏的方法是取消全部选择以取消隐藏该选项中的所有其他值。与if(选中隐藏)类似,如果未选中则删除隐藏。我必须承认,应该有一个更好的方法来做到这一点,这种类型的写作只会导致进一步的麻烦。
    document.getElementById("myDIV").classList.add("mystyle");
    
    document.getElementById('answer-12702744').style.display = 'none;'