如何在javascript中包含switch语句用于字符串

时间:2013-03-29 10:12:42

标签: javascript asp.net-mvc

在我的MVC应用程序中包含了一个名为Form Field的按钮。每当用户点击该按钮时,下拉列表会显示在包含文本的模式框中,复选框等作为选项。 表单字段和下拉列表的代码:

<input type="button" id="FormField" name="Form Field" value="Form Field" style="width: 110px; height: 30px; background-color: #FFFFFF;"  onclick="return FormField_onclick()" />


function FormField_onclick(box) {
             dhtmlx.modalbox({
                 title: "Form Field Creation Tool",
                 text: "<div id='form_in_box'><div ><label>Type: <select id='Type' name='Type'><option>Text</option><option>Checkbox</option><option>Radio</option><option>DropDown</option><option>Listbox</option></select></label><br></div><div><span class='dhtmlx_button'><input type='submit' value='Select' style='width: 86px' onclick='Select_type(this)'></span><span class='dhtmlx_button'><input type='button' value='Cancel' onclick='close_file(this)' style='width:80px;'></span></label></div></div>",
                 width: "300px"
             });  
         }

每当用户从下拉列表中选择特定选项时,例如,如果用户选择文本选项并单击选择按钮,则应在光标位置插入文本框。 选择按钮的代码:

 function Select_type(box) {
             var tp = document.getElementById('Type');

             switch (tp) {
                 case "text":
                     {
                     var editor = CKEDITOR.instances.message;
                        editor.insertHtml('<input type="text" id="tx" name="tx" style="width: 110px; height: 30px" />'); 
                 }
                     break;
                 case "Checkbox": { var editor = CKEDITOR.instances.message;
                                        editor.insertHtml('<input type="checkbox" id="chk" name="chk" value="Checkbox" style="width: 110px; height: 30px" />');} 
                     break;
                 case "Radio": 
                     { 
                 var editor = CKEDITOR.instances.message;
                 editor.insertHtml('<input "radio" id="rd" name="rd" value="radio" style="width: 110px; height: 30px" />');
}
                     break;
                 case "DropDown": alert("DropDown");
                     break;
                 case "Listbox": alert("Listbox");
                     break;
             }              
             dhtmlx.modalbox.hide(box);
         }

但这对我不起作用。即使警报也不起作用。而且我也不知道如何在其中包含下拉列表和列表

2 个答案:

答案 0 :(得分:1)

您想要开启:

document.getElementById('Type').value

而不是它自己的元素,因为它不等于你提供的任何情况。

答案 1 :(得分:0)

如果你想要,可以使用switch语句的对象文字...

var sw = {
    hello: function () {
        console.log("hello");
    },
    goodbye: function () {
        console.log("goodbye");
    }
}
var str = "hello";
sw[str](); //logs hello

下面是一个解释:http://www.dyn-web.com/tutorials/obj_lit.php

我认为你需要澄清你的问题,然后适当地标记它......