【问题标题】:How to display the corresponding values in the text box depending on drop down list on selecting radio button in javascript?如何根据在javascript中选择单选按钮的下拉列表在文本框中显示相应的值?
【发布时间】:2013-04-01 20:28:51
【问题描述】:

我正在创建一个表单,要求使用单选按钮选择学位。根据选择的单选按钮,下拉列表中的值会发生变化。现在我想根据从下拉列表中选择的选项在文本框中显示一些值。

在这里,我可以在选择单选按钮时更改下拉列表中的值,但在从下拉菜单中选择值时无法在文本框中显示。 这是我的java脚本代码:

请选择您的学位 UG PG

    <fieldset id="branch">
    <legend>Please select your degree</legend>
    <select name="branch" id="degreepg" size="1">
        <option value="00">Select Degree First</option>

    </select>
    </fieldset>      

    <fieldset id="semester">
    <legend>Semester</legend>
    <input type="text" name="semester" id="textbox" size="1"/>
    </fieldset>
    </div>

java脚本函数:

函数 SetbranchBydegree(degree) { var dropdown = document.getElementById("degreepg");

switch (degree.value) {
    case 'UG': {
        dropdown.options.length = 0;
        dropdown.options[dropdown.options.length] = new Option('Select One','0');
        dropdown.options[dropdown.options.length] = new Option('B.Tech','1');
        dropdown.options[dropdown.options.length] = new Option('B.E','2');
        break;
    }

    case 'PG': {
        dropdown.options.length = 0;
        dropdown.options[dropdown.options.length] = new Option('Select One','0');
        dropdown.options[dropdown.options.length] = new Option('M.Tech','3');
        dropdown.options[dropdown.options.length] = new Option('M.C.A','4');
        break;
    }


    default:{

        dropdown.options.length = 0;
        dropdown.options[dropdown.options.length] = new Option('Select Degree First','00');

        break;
    }
}

if(dropdown.selectedIndex==1)

{
  textbox.value = "8";
}  
 else if(dropdown.selectedIndex==2) 
  {
  textbox.value = "8";     
  }  
 else if(dropdown.selectedIndex==3) 
   {
  textbox.value = "4";        
   }  
else if(dropdown.selectedIndex==4)  
  {
  textbox.value = "6";      
  }  

}

【问题讨论】:

    标签: javascript jsp css


    【解决方案1】:

    您应该考虑将您的 Options 放在一个对象中,而不是使用 if 语句链,这不仅更容易查看,而且以后更容易扩展,并且您正在缓存这些值。

    (function() {
        var options = {
            UG: [
            new Option('Select One', '0'),
            new Option('B.Tech', '1'),
            new Option('B.E', '2')],
    
            PG: [
            new Option('Select One', '0'),
            new Option('M.Tech', '3'),
            new Option('M.C.A', '4')],
    
            fallback: [
            new Option('Select Degree First', '00')]
        }
    
        var SetBranchBydegree = function(degree) {
            var dropdown = document.getElementById("degreepg");
            if (options[degree] !== undefined) {
                dropdown.options = options[degree];
            } else {
                dropdown.options = options.fallback;
            }
        }
    
        var init = function() {//Setup listeners
        $("#gereepg").change(function(event) {
            var textBox = $("#textbox"), //The textbox with id textbox
                index   = event.target.index;//selected index
    
            if (index == 1 || index == 2) {
                textbox.val("8");
            }
            else if (index == 3) {
                textbox.val("4");
            }
            else if (index == 4) {
                textbox.val("6");
            }
        });
    }
    
    $(document).ready(init);//run the init method when the site has loaded.
    })();
    

    要更改文本框的值,您需要监听 select 的 onChange 事件。这可以通过简单地添加一个属性 onChange="javascriptMethod(this)" 来完成,但通常不建议这样做,因为它会促进全局范围污染。上面是一个用 jQuery 做的例子;

    【讨论】:

      【解决方案2】:
      document.getElementById ("textboxId").value = "value";
      

      WORKING DEMO

      【讨论】:

        猜你喜欢
        • 2019-10-26
        • 1970-01-01
        • 1970-01-01
        • 2021-07-01
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 2012-09-11
        • 2019-07-04
        相关资源
        最近更新 更多