我的选择表单中的 Javascript 不适用于文本区域字段

标签 javascript css forms select onchange

你好,我已经用尽了所有关于这个问题的答案,但没有什么能回答我正在寻找的问题。

我有一个留言板,我想在其中使用静态 html 创建一个充满预制模板的下拉菜单。这个想法是这样的:张贴者想要从表单下拉菜单中将预制的 html 标签加载到他们的消息正文中。我让它与 Firefox 完美配合......但当然,IE 不支持 onclick 调用 javascript。在我的研究中,我不知疲倦地尝试在调用我的 javascript 时获取 onchange,但我似乎无法让它工作._。任何帮助,将不胜感激!谢谢。

以下是在 Firefox 中工作的 js 和表单。这里没有显示的是有一个文本区域,其中填充了脚本引发的值。

JAVASCRIPT:

function add_event_setup()
{
document.dataform.bodytext.value += "<center><img src=\"../../images/kick_ass_title.jpg\"><br><span class=\"event_title\">INSERT TEXT</span><br><br><table width=\"500\" bgcolor=\"#FF0000\"><tr><td bgcolor=\"#000000\"></td></tr></table></center>";
}


THE FORM:

<select class="formselect">
  <option value="Setup" class="formselect">--Setup--</option>
  <option value="Setup1" onclick="add_event_setup()" style="border: 1px solid gray" class="formselect">Setup 1</option>
</select>

最佳答案

尝试以下 3 种方法之一:

第一种方式

JavaScript

 function add_event_setup(selectElement) {

var val = selectElement.value;

if(val == "TF")
    alert("DO THIS");
else if(val == "JR")    
    alert("DO THAT");
else
    alert("something else"); }

HTML

<select class="formselect" onchange="add_event_setup(this);"> 
    <option value="Game Terms" class="formselect">--Game Terms--</option>
    <option value="TF" style="border: 1px solid gray" class="formselect">TimeFrame</option>
    <option value="JR" style="border: 1px solid gray" class="formselect">Jim Ross</option>
</select>

第二种方式

HTML + JavaScript (确保script标签放在select标签之后,如下图)

<select id="myform" class="formselect"> 

    <option value="Game Terms" class="formselect">--Game Terms--</option>
    <option value="TF" style="border: 1px solid gray" class="formselect">TimeFrame</option>
    <option value="JR" style="border: 1px solid gray" class="formselect">Jim Ross</option>
</select> 
<script>
document.getElementById("myform").addEventListener("change", function() {

    var val = this.value;

    if(val == "TF") {

        alert("DO THIS");
    } else if(val == "JR") {

        alert("DO THAT");

        } else
         alert("something else");


        }, false);
        </script>

第三种方式

以防万一你使用 jQuery :

JavaScript

    var MySelector = {

        setup : function() {

            $('#myform').bind('change', function() {

                var val = $(this).val();

                if(val == "TF") {

                    alert("DO THIS");
                } else if(val == "JR") {

                    alert("DO THAT");

                } else
                     alert("something else");           

            });

        }

    };

    $(document).ready(function() {

        MySelector.setup();
    });

HTML

    <select id="myform" class="formselect"> 

        <option value="Game Terms" class="formselect">--Game Terms--</option>
        <option value="TF" style="border: 1px solid gray" class="formselect">TimeFrame</option>
        <option value="JR" style="border: 1px solid gray" class="formselect">Jim Ross</option>
    </select>

关于我的选择表单中的 Javascript 不适用于文本区域字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5411755/

相关文章:

javascript - React-Native 导入库并在多个组件中可用

javascript - 将标题层次结构生成为有序列表

css - 将背景颜色的下边缘设为另一种颜色

javascript - 使用 XmlHttpRequest/ajax 发布表单会改变有效负载

javascript - 为什么应该使用 .forEach 语法而不是 for 循环语法?

javascript - 评论框添加文本值而不使用html

html - 如何去除锯齿?

javascript - 滚动时在视口(viewport)上正确对齐 div

arrays - 如何使用html表单发送数组

javascript - 动态添加字段到嵌套表单 onchange of select